如何指示 MSTest 在测试运行后删除所有测试工件?

发布于 2024-12-26 11:07:23 字数 605 浏览 0 评论 0原文

我从命令行针对我们的测试程序集运行 MSTest:

mstest /testcontainer:C:\dev\UnitTests\bin\Debug\UnitTests.dll

这工作正常,但我不希望来自的工件此运行保持。似乎 MSTest 留下了一份副本。对我来说,它们位于 C:\dev\TestResults\ 目录中。

我调查了一些事情:

  • .testsettings 文件中的配置。在那里找不到任何东西。
  • 运行在 .testsettings 文件中指定的清理脚本。这可行,但如何找到 MSTest 用于工件的输出位置?
  • 使用Visual Studio限制工具>中旧测试结果的数量选项>测试工具>>测试执行。使用 mstest.exe 时这不起作用 - 并且无论如何它都不起作用,因为我想为我们团队中的其他开发人员编写此脚本。

运行完成后如何删除测试运行工件?

编辑:另外,我会接受一个答案,该答案将使用开源测试运行工具运行我们的 MSTest 测试。我只是想编写这个脚本,伙计。

I am running MSTest against our test assembly from the command line:

mstest /testcontainer:C:\dev\UnitTests\bin\Debug\UnitTests.dll

This works fine, except I do not want the artifacts from this run to remain. Seems that MSTest leaves a copy around. For me, they're in the C:\dev\TestResults\ directory.

I have investigated a few things:

  • Configuration in a .testsettings file. Couldn't find anything there.
  • Running a cleanup script, specified in a .testsettings file. This would work, but how can I find the output location MSTest uses for the artifacts?
  • Using Visual Studio to limit the number of old test results in Tools > Options > Test Tools > Test Execution. This doesn't work when using mstest.exe - and it wouldn't work anyway, as I want to script this for other developers on our team.

How can I remove test run artifacts after the run is completed?

Edit: also, I would accept an answer that will run our MSTest tests using an open source test running tool. I just want to script this, man.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

玩物 2025-01-02 11:07:23

MSTest 在 $pwd 中创建 TestResults 目录。

function global:runtests()
{
    $mstest = Join-Path $env:VS100COMNTOOLS "..\IDE\mstest.exe" -Resolve

    $resultsDir = Join-Path $pwd "TestResults"

    $testDll = Join-Path $solutionScriptsContainer "..\UnitTests\bin\Debug\UnitTests.dll" -Resolve          
    $output = & $mstest /testcontainer:$testDll 
    $o = [regex]::match($output, "^.*(Summary.*)Results file.*$")
    $mstflag = "MSTest:"
    $op =  $mstflag +=  $o.groups[1].value

    Write-Host $op
    Write-Host "Deleting $resultsDir"

    remove-item $resultsDir -force -recurse
}

MSTest creates the TestResults directory in $pwd.

function global:runtests()
{
    $mstest = Join-Path $env:VS100COMNTOOLS "..\IDE\mstest.exe" -Resolve

    $resultsDir = Join-Path $pwd "TestResults"

    $testDll = Join-Path $solutionScriptsContainer "..\UnitTests\bin\Debug\UnitTests.dll" -Resolve          
    $output = & $mstest /testcontainer:$testDll 
    $o = [regex]::match($output, "^.*(Summary.*)Results file.*$")
    $mstflag = "MSTest:"
    $op =  $mstflag +=  $o.groups[1].value

    Write-Host $op
    Write-Host "Deleting $resultsDir"

    remove-item $resultsDir -force -recurse
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文