如何指定保存测试结果的位置?

时间:2012-07-30 14:03:06

标签: visual-studio-2010 visual-studio mstest

自动化测试时,我会使用命令行程序MSTest.exe。我会传入一个参数,该参数将指定我希望测试结果文件保存到的位置。

我的问题是我希望能够从Visual Studio GUI运行测试,并且仍然能够为测试结果文件指定位置。

我的理由是我正在编写一些代码来读取测试结果文件(因为它是XML格式的),然后将结果通过电子邮件发送到指定的电子邮件地址。

我希望我的测试从同一位置获取测试结果文件,无论我是通过MSTest.exe还是通过Visual Studio GUI运行测试。

我知道我可以通过选择“导出测​​试运行详细信息”来在GUI中执行此操作。来自“测试结果”的选项'窗口。我想知道如何以编程方式执行此操作,因此我可以在测试运行完成后自动执行操作。

...或者,是否有允许我以编程方式访问测试结果信息的类?我相信有一个TestResult类可以帮助我,例如,虽然我不太清楚如何使用它。我还注意到TestContext类具有诸如' DeploymentDirectory'之类的属性,但它们是只读的。

另外,我在线阅读其他地方,使用VS2008,您可以编辑.testrunco​​nfig文件,在TestRunConfiguration元素中添加以下行:

  

'<&#;;部署userDeploymentRoot =" C:\ TestResults" useDefaultDeploymentRoot ="假" />

但.testrunco​​nfig文件在我的解决方案中不存在,并且TestRunConfiguration元素不会出现在我的.vsmdi文件中。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您可以使用清理脚本,它会将Test Results文件复制到预定义的目录。

使用以下代码创建批处理:

::Set the path where the result files will be copied
set TargetDirectory = "C:\..."
::copy the results file
xcopy /s /y "%TestDir%.trx" %TargetDirectory%

请注意,%TestDir%变量由Visual Studio自动创建到qtcleanup.bat,该变量位于每次测试运行的默认测试结果输出目录中。

您的批处理文件的内容将附加到qtcleanup.bat,以便您可以使用上述变量。您也可以打开它以查看其余可用变量。

创建批处理文件后,转到visual studio,打开*.testsettings,单击Setup and Cleanup Scripts并选择.bat文件。

它将在测试运行结束时每次运行。