【发布时间】:2020-02-25 19:43:21
【问题描述】:
目前我们正在构建一个 Jenkins-Pipeline,在构建它时我们发现我们需要一些 bat 脚本。但现在我不知道更多了。我们有一个包含所有单元测试的文件夹(大约 27 个 .dll,总共 1788 个测试)。
示例路径:
D:\Jenkins\Pipeline\trunk\Binaries\Unittests\SculiWebServiceTest.UnitTests\SculiWebServiceTests.dll D:\Jenkins\Pipeline\trunk\Binaries\Unittests\ExternalServices.UnitTests\ExternalServicesTests.dll D:\Jenkins\Pipeline\trunk\Binaries\Unittests\ServiceBus.IntegrationTests\ServiceBus.IntegrationTests.dll
我们要执行所有的 .dll 并定义一个 Quality-Gate(这意味着所有的测试都需要通过),以下工作:
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\MSTest.exe" "/testcontainer:D:\Jenkins\Pipeline\trunk\Binaries\Unittests\SculiWebServiceTest.UnitTests\SculiWebServiceTests.dll"
但是如果你添加更多/testcontainer,我们会得到一个错误“指定的路径,文件名,或两者都太长。完全限定的文件名必须小于260个字符,目录名必须是少于 248 个字符。”
已经阅读了这篇文章,但它没有帮助我“wildcard test containers to mstest. exe”,这里有人有解决方案吗?
【问题讨论】:
-
有这么多的测试,你迟早会遇到命令行长度限制。您可以在批处理或 powershell 脚本中运行一个循环,以将所有 DLL 一个一个地传递给 MSTest。
标签: batch-file jenkins-pipeline mstest