コマンドラインを介してNUnitテストに値を渡すことはどういうわけか可能ですか?
私のテストでは特定のURLを使用しています。さまざまなURLにさまざまなコードのインスタンスがあり、コマンドラインからURLを指定したいと思います。App.config
バッチファイルを介してさまざまなURLのテストを実行したいので、ファイルはオプションではありません。
コマンドラインを介してNUnitテストに値を渡すことはどういうわけか可能ですか?
私のテストでは特定のURLを使用しています。さまざまなURLにさまざまなコードのインスタンスがあり、コマンドラインからURLを指定したいと思います。App.config
バッチファイルを介してさまざまなURLのテストを実行したいので、ファイルはオプションではありません。
環境変数を使用して情報を渡します。
set
コマンドラインまたは<setenv>
NAntから使用します。次に、を使用して値を読み取りますEnvironment.GetEnvironmentVariable()
。
NUnit 3では、パラメーターを渡すことができるようになりました。これが使用法です
nunit3-console [inputfiles] --params:Key=Value
ドキュメントから
--params | p = PARAMETER
テストで使用するためにNAME=VALUEの形式で指定されたテストPARAMETER。複数のパラメーターを指定するか、セミコロンで区切るか、-paramsオプションを複数回繰り返すことができます。大文字と小文字を区別。
コードを介してパラメータにアクセスする方法は次のとおりです。
var value= TestContext.Parameters.Get("Key", "DefaultValue");
現時点では解決策はないようです。最良のオプションは、NUnitプロジェクトファイルを使用し、そこで設定を変更して、ソリューションファイルをランナーに渡すことです。
同様の問題がありました。アキムの答えは私を正しい軌道に乗せました、そして他の読者のために:
次のようなファイルを作成しますexample.nunit
。
<NUnitProject>
<Settings activeconfig="local"/>
<Config name="local" configfile="App.config">
<assembly path="bin\Debug\example.dll"/>
</Config>
<Config name="dev" configfile="App.Dev.config">
<assembly path="bin\Debug\\example.dll"/>
</Config>
<Config name="test" configfile="App.Test.config">
<assembly path="bin\Debug\\example.dll"/>
</Config>
</NUnitProject>
(構成ファイルとアセンブリファイルの)すべてのファイル/パスは、NUnitファイルの場所を基準にしています。また、App.config、App.Dev.configなどのファイルは単なる.NET構成ファイルです。
次に、特定の構成で実行する場合は、次のように実行します。
nunit3-console.exe example.nunit /config:test
NUnitファイルの形式の詳細については、NUnit ProjectXMLFormatを参照してください。
コマンドライン引数の詳細については、 http://www.nunit.org/index.php?p = consoleCommandLine&r=2.2.5を参照してください。