4

VisualStudioに2つのプロジェクトがあるソリューションがあります。通常のものとNUnitテスト用の「テスト」プロジェクト。テストプロジェクトには、通常のプロジェクトへの参照があります。テストを追加してNUnitGUIで実行しようとしましたが、「通常の」プロジェクトの「dll」が見つからないというエラーが表示されます(メソッドを取得できると思いますか?)。重要なのは、「通常の」プロジェクトはクラスライブラリではなく、実行可能ファイルであるため、テストプロジェクトのbin/Debugにはnormalproject.dllではなくnormalproject.exeが含まれているということです。

NUnitをこのセットアップで動作させるにはどうすればよいですか?私はこの種の設定を持っているチュートリアルへのリンクに感謝するでしょう、これまでのグーグル検索は何も見つかりませんでした。

私が得ている実際のエラーコードは次のとおりです。

Achievement.Tests.Achievement.BruiserTest.CheckNameAndDescription:System.BadImageFormatException:ファイルまたはアセンブリを読み込めませんでした'Achievement、Version = 1.0.0.0、Culture = neutral、PublicKeyToken=null'またはその依存関係の1つ。間違った形式のプログラムを読み込もうとしました。

4

2 に答える 2

5

私も同じ問題を抱えていました!

解決策: NUnitはx86およびx64バイナリでインストールされます。スタートメニューには、デフォルトのx64プログラムのみが表示されます。私が使用しているネイティブライブラリがいくつかあるため、私のプロジェクトはx86を対象としているため、手動で開始する必要nunit-x86.exeC:\Program Files (x86)\NUnit 2.6.3\binあり、機能しました。

于 2013-12-02T14:34:12.047 に答える
3

チェックは、テストするクラスのアクセシビリティです。それらはパブリックとしてマークする必要があります。そうしないと、テストプロジェクトはそれらをロードするためにそれらを見ることができません。

クラスをパブリックにする別の方法は、EXEでInternalsVisibleTo属性を使用し、テストプロジェクトDLLへのアクセスを許可することです。パブリックではなく、内部としてマークする必要があります。

EXEのAssemblyInfo.cs:

[assembly: InternalsVisibleTo( "Project.Tests" )]  

テストにDLLの代わりにEXEを参照することに問題はありません(技術的に言えば、とにかく、アプリのアーキテクチャは別の問題です)

于 2012-10-06T03:08:25.597 に答える