0

インメモリ データベース コンポーネントをテストするために NHibernate と SQLite を使用するいくつかのテストがあります。テストは Visual Studio で正常に実行されますが、MSTest.exe コンソール ランナーはすべてのテストの実行を拒否します。コンソール ランナーは、TeamCity を使用してすべてのテストを実行するビルド サーバーによって使用されます。マシンで MSTest.exe を使用して、ローカル コンソール ランナーも失敗することを確認します。

私はこの内部例外を持っています:

NHibernate.HibernateException: Could not create the driver fromNHibernate.Driver.SQLite20Driver, NHibernate, Version=3.3.1.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4. ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentException: Unable to find the requested .Net Framework Data Provider.  It may not be installed

これに対するほとんどの回答には、SQLite への正しい参照アセンブリを App.config に追加することが含まれますが、テスト プロジェクトはクラス ライブラリです。

テスト プロジェクトでは、次のアセンブリを参照しました。

  • NHibernate 3.3.1.4000
  • System.Data.SQLite (x86、x64) 1.0.89.0
  • Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 10.0.0.0 (C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\ReferenceAssemblies\v4.0\、v2.0 を指すデフォルトの参照を変更しましたVisual Studio では問題なく実行されますが、次のエラーのため、ビルド サーバーでテストを実行しません。

ClassInitialize のシグネチャが間違っています。パラメーター 1 は Microsoft.VisualStudio.TestTools.UnitTesting.TestContext 型である必要があります

次のツールを使用します。

  • MSTest.exe (C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\MSTest.exe)
  • .NET フレームワーク 4.0
  • ビジュアル スタジオ 2012

これを進める方法はありますか?ありがとう !

4

1 に答える 1

0

最後に、vstest.console.exe コンソール ランナーを使用してテストを実行すると、動作します。(何がうまくいかなかったのかわかりません) このランナーを Teamcity と結合することに興味がある場合は、次の記事をお読みください 。 the-Visual-Studio-2012-Test-Runner

于 2013-11-12T13:21:50.820 に答える