5

nunit-consoleソリューションのすべてのテストを実行するために使用します。

これは私がしました:

c:\some\path>nunit-console-x86.exe MySolution.sln
NUnit-Console version 2.6.2.12296
Copyright (C) 2002-2012 Charlie Poole.
Copyright (C) 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov.
Copyright (C) 2000-2002 Philip Craig.
All Rights Reserved.

Runtime Environment -
   OS Version: Microsoft Windows NT 6.1.7601 Service Pack 1
  CLR Version: 2.0.50727.5466 ( Net 3.5 )

ProcessModel: Default    DomainUsage: Default
Execution Runtime: net-3.5
Could not load file or assembly 'MyNamespace.Administration, Version=0.0.0.1, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.

だから、私は試してみるnunit-x86.exeことにしFile > Open Project > MySolution.slnました。

---------------------------
NUnit
---------------------------
Test load failed!

System.IO.FileNotFoundException : Could not load file or assembly 
'MyNamespace.Administration, Version=0.0.0.1, Culture=neutral, 
PublicKeyToken=null' or one of its dependencies. The system cannot 
find the file specified.

For further information, use the Exception Details menu item.
---------------------------
OK   
---------------------------

例外はここにあります

何が起きていて、どうすれば修正できますか? (MySolution.nunit ファイルを維持する必要はありません)

詳しくは

  • MyNamespace.Administrationは、テストを含む dll の 1 つでもありません。つまり、nunit は、実行するテストを探すためにそれを読み込もうとして失敗します。これを知って、nunit-x86.exe(MySolution.nunit) によって作成されたファイルを編集し、テストのないすべての dll を削除しました。案の定、テストは (GUI とコンソールの両方で) 機能します。これは、さらに別の構成ファイルを保持する必要があることを意味するため、私には受け入れられません。.sln ファイルをサポートする Nunit は、これを回避するはずでした。
  • テストは TestDriven.Net を使用して正常に実行されます (ただし、実際には nunit-console を使用してテストを実行する必要があります)
  • この回答を見ましたが、フュージョン ログ ビューアーの内容が理解できません。そのログを投稿すると役に立ちますか? アセンブリ バインディング ログ ビューアーには、作成中の 3 つのファイルが一覧表示されます。
  • (andreister のコメントによる) 問題は、作成方法ではなく、プロジェクト/アセンブリ自体にあるようです。.nu​​nit プロジェクトを作成して追加しようとするMyNamespace.Administrationと (「アセンブリの追加...」または「VS プロジェクトの追加...」を使用)、失敗します。
  • nunit-console-x86 somepath/bin/Debug/MyNamespace.Administration.dll直接呼び出すと機能します。
4

2 に答える 2

3

残念ながら、nunit-discuss グループに投稿した後でも、この問題の適切な解決策を見つけることができませんでした。

nunit-discuss グループは、1 レベル上の依存関係があるために私のテストが失敗することを確認しました。

ただし、許容できる回避策を見つけました。

を直接呼び出し.dllても同じ問題はありませんでした。グロブでこれを行うことができましたが、私はWindowsを使用しています...しかし、git bashがインストールされています。

私のやや厳格なプロジェクト構造と命名規則を利用して、私はこれを行うことができました:

"C:\Program Files (x86)\Git\bin\bash.exe" -c 'nunit-console-x86.exe //framework=net-4.5 //xml:nunitresults.xml MysolutionFolder/Tests/*/bin/Debug/*.Tests.dll'

命名規則を利用したことに注意してください。これは、引数の数を減らすために非常に重要です。

nunit-console-x86 MysolutionFolder/*/*/bin/Debug/*.dll代わりにやったときに、と言っMysolutionFolder/Tests/*/bin/Debug/*.Tests.dllてエラーが発生しました。その上、適切なファイルを提供するだけでより高速になります。nunit-console-x86Bad file number

より新しいバージョンの bash (4.0 以降だと思います) を使用している場合は、代わりに次のコマンドを使用できます ( の使用に注意してください**)。

"C:\Program Files (x86)\Git\bin\bash.exe" -c 'nunit-console-x86.exe //framework=net-4.5 //xml:nunitresults.xml MysolutionFolder/**/bin/Debug/*.Tests.dll'

これは、プロジェクト構造に対してより短く、より寛容です。

于 2013-07-04T18:18:01.377 に答える