1

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

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

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

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

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

...或者,是否有类可以让我以编程方式访问测试结果信息?例如,我相信有一个 TestResult 类可能对我有所帮助,尽管我不太确定如何使用它。我还注意到 TestContext 类具有诸如“DeploymentDirectory”之类的属性,但它们是只读的。

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

'<'部署 userDeploymentRoot="C:\TestResults" useDefaultDeploymentRoot="false" />

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

任何帮助表示赞赏,谢谢。

4

1 回答 1

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 文件。

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

于 2012-07-30T16:53:34.867 回答