2016-08-15 47 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