我正在寻找以编程方式在C#中运行批处理文件,作为我在本地计算机上工作的测试(在MS TEST中运行)的一部分。我想运行的批处理文件位于支持文件夹中的资源库中,该文件夹中还包含源代码。在VSTS中,测试运行如下:VSTS中的文件路径
“C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TestWindow \ vstest.console.exe”“C:\ International \ InternationalAppAutomation \ International.IntegrationTests.UI \ International.IntegrationTests.UI \ bin \ Debug \ International.IntegrationTests.UI.dll“”C:\ International \ InternationalAppAutomation \ International.IntegrationTests.UI \ International.IntegrationTests.UI \ obj \ Debug \ International.IntegrationTests.UI.dll“/ TestCaseFilter:”TestCategory = Explore“/Settings:"C:\International\InternationalAppAutomation\International.IntegrationTests.UI\International.IntegrationTests.UI\QA.testsettings”/ logger:trx/TestAdapterPath:“C:\ International \ InternationalAppAutomation”
由于我使用相对路径运行批处理文件,所以失败是因为VSTS从本地机器运行的位置不同。这个问题的推荐解决方案是什么?
注 - 我无法将此批处理文件放在测试输出文件夹中,因为它非常大,我们不希望为每次新的测试运行都复制它。
谢谢@jessehouwing
通过添加适当的
TestContext
属性为您的测试类,你可以从中检索这些目录。但是,问题不是将路径传递到批处理文件,而是获取批处理文件的路径。 VSTS应该知道批处理文件位于存储库中的哪里,但是因为VSTS在服务器上运行测试文件的方式与在我的计算机上运行相对路径中断的方式不同。 – gmoerkerken