私は、NUnit 2.6.3の結果を実行して処理するのに成功したPSスクリプトを持っています。私は最近NUnit 3.2.1にアップグレードし、NUnit実行可能ファイルに引数を渡すことに問題があります。タコから呼び出されたスクリプトは次のように展開:PowershellからNUnit 3を実行
RunTests.ps1 -NunitArgs "--where cat==QuickTests" -OutputPath "workdir"
引数はここに処理されます。
param(
[string]$OutputPath = "testResults",
[string]$NunitArgs = "nunitOptions"
)
NUnitのは、(コマンドエコーラインで)と呼ばれている:
function GetNUnitConsolePath
{
return join-path -path ${env:ProgramFiles(x86)} -childpath "NUnit-3.2.1\bin\nunit3-console.exe"
}
...
Write-Host "Executing: $(GetNUnitConsolePath) Test.dll $NunitArgs --work==$OutputPath"
& $(GetNUnitConsolePath) Test.dll $NunitArgs --work==$OutputPath
をその結果:
Executing: C:\Program Files (x86)\NUnit-3.2.1\bin\nunit3-console.exe Test.dll --where cat==QuickTest
s --work=workdir
NUnit Console Runner 3.2.1
Copyright (C) 2016 Charlie Poole
Invalid argument: --where cat==QuickTests
次のコード行PSスクリプトから期待通りに動作します:予想通り
& $(GetNUnitConsolePath) Test.dll --where cat==QuickTests --work=workdir
テストを実行し、カテゴリフィルタ&作業ディレクトリが設定されています。
NUnit Console Runner 3.2.1
Copyright (C) 2016 Charlie Poole
Runtime Environment
OS Version: Microsoft Windows NT 6.3.9600.0
CLR Version: 4.0.30319.34209
Test Files
Test.dll
Test Filters
Where: cat==QuickTests
Run Settings
WorkDirectory: workdir
ImageRuntimeVersion: 4.0.30319
ImageTargetFrameworkName: .NETFramework,Version=v4.5
ImageRequiresX86: False
ImageRequiresDefaultAppDomainAssemblyResolver: False
NumberOfTestWorkers: 8
Test Run Summary
Overall result: Passed
私も試してみました:
$arg1 = 'Test.dll'
$arg2 = '--where cat==QuickTests'
$arg3 = '--work=workdir'
Write-Host "Executing: $(GetNUnitConsolePath) $arg1 $arg2 $arg3"
& $(GetNUnitConsolePath) $arg1 $arg2 $arg3
これはNUnitのと同じ出力になる:
Executing: C:\Program Files (x86)\NUnit-3.2.1\bin\nunit3-console.exe Test.dll --where cat==QuickTest
s --work=workdir
NUnit Console Runner 3.2.1
Copyright (C) 2016 Charlie Poole
Invalid argument: --where cat==QuickTests
私はPS noobですので、うまくいけば、スクリプトで見落とされていることが明らかです。また、Invoke-Commandの-ArgumentListを使用してさまざまな反復試行を試みましたが、どこでもそれを取得できませんでした。すべての建設的な提案は高く評価されています - ありがとう!