2016-08-15 44 views
2

我有一個C#/ Selenium/Specflow測試套件,我使用junkins使用xunit.console.exe運行。我需要將這些測試指向不同的環境(Test/QA/Prod等),並且希望使用命令行參數。如何指定自定義參數,使用xunit.runner.console

批處理命令我打電話是: "%WORKSPACE%\packages\xunit.runner.console.2.1.0\tools\xunit.console""%WORKSPACE%\[MyProject]\bin\Debug\eDC6.Test.Specs.dll" -xml test_output.xml

,並希望包括像一個額外的參數:「-env = PROD」該作業指向特定的環境。

我打開更好的方式來做到這一點。

回答

1

IIRC我在2010年之前的codeplex時代的xunit論壇上提出並自我回答了這個問題,但無法找到atm(也許我是在CodeRush的測試運行環境中提出的)。無論哪種方式,上面的答案都是當時的答案,它仍然是有意義的,因爲它是測試運行者和CI工具中立的。

這通常由環境變量來處理,即使用GetEnvironmentVariable

需要考慮的一件事是,想要使用Visual Studio等跑步者的人需要相應地進行調整。 .NET Core對於擁有這種性質的環境選擇器具有內在的支持,這也可能是一種有用的方法,因爲它可能會隨着時間的推移而暴露在編輯器和其他工具中。

最後,最低級別的黑客可能會將其設置爲.config設置,即<DllName>.dll.config,並進行必要的傳遞。

1

對於這個解決方案附加的命令行給了我更多的靈活性:

「%WORKSPACE%\包\ xunit.runner.console.2.1.0 \工具\ xunit.console」「%WORKSPACE%[MyProject的] \ bin \ Debug \ eDC6.Test.Specs.dll「-TargEnv QAConfig.json - xml test_output.xml