自动化测试时,我会使用命令行程序MSTest.exe。我会传入一个参数,该参数将指定我希望测试结果文件保存到的位置。
我的问题是我希望能够从Visual Studio GUI运行测试,并且仍然能够为测试结果文件指定位置。
我的理由是我正在编写一些代码来读取测试结果文件(因为它是XML格式的),然后将结果通过电子邮件发送到指定的电子邮件地址。
我希望我的测试从同一位置获取测试结果文件,无论我是通过MSTest.exe还是通过Visual Studio GUI运行测试。
我知道我可以通过选择“导出测试运行详细信息”来在GUI中执行此操作。来自“测试结果”的选项'窗口。我想知道如何以编程方式执行此操作,因此我可以在测试运行完成后自动执行操作。
...或者,是否有允许我以编程方式访问测试结果信息的类?我相信有一个TestResult类可以帮助我,例如,虽然我不太清楚如何使用它。我还注意到TestContext类具有诸如' DeploymentDirectory'之类的属性,但它们是只读的。
另外,我在线阅读其他地方,使用VS2008,您可以编辑.testrunconfig文件,在TestRunConfiguration元素中添加以下行:
'<&#;;部署userDeploymentRoot =" C:\ TestResults" useDefaultDeploymentRoot ="假" />
但.testrunconfig文件在我的解决方案中不存在,并且TestRunConfiguration元素不会出现在我的.vsmdi文件中。
感谢任何帮助。
答案 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文件。
它将在测试运行结束时每次运行。