【问题标题】:MsTest parallel execution on TeamCityTeamCity 上的 MsTest 并行执行
【发布时间】:2013-03-14 18:09:47
【问题描述】:

我有一个出色的构建服务器,具有大量 RAM 和处理器。此外,我有一个包含大量 MsTest 测试的项目(其中 95% 是简单的单元测试)。看到这些测试一个一个地执行了 15 分钟,真是令人失望。所以我正在寻找并行执行这些测试的方法。

据我所知,TeamCity 对此没有本机支持。当然,您可以为每组测试创建构建配置并并行执行它们......但它在很多方面都很糟糕。

连续测试工具内部具有出色的高度并行化测试运行器。我来的最佳选择是将它们用作 Team City 测试运行器,但我不知道如何实现它。有什么办法吗?

【问题讨论】:

    标签: .net teamcity continuous-testing


    【解决方案1】:

    如果您不想使用内置的 TeamCity 测试运行器步骤,则不必这样做。您可以使用命令行测试运行程序从单个 MSBuild 脚本运行构建和测试,然后将结果上传到 TeamCity。

    虽然您在构建构建时失去了 GUI,但以这种方式构建的好处是您的构建应该在您的开发机器上运行与在构建服务器上运行的相同。您还与 CI 无关,能够在任何 CI 环境(在合理范围内)上运行您的构建。

    TeamCity XML Report Processing

    TeamCity Importing XML Reports

    这是一个例子:

    <Message Text="##teamcity[importData type='mstest' path='path to mstest output xml file']"/>
    

    【讨论】:

    • 我认为这个解决方案意味着 msbuild 日志本身不能传回任何细节?对吗,或者有没有办法让 tc 接受为报告它而编写的自定义 xml? (关于 xml 的文档没有将 msbuild 引用为可用输入。)
    • @AnneTheAgile 正确 TeamCity 不使用 MSBuild 日志来显示测试结果,尽管日志可以作为 TeamCity 构建日志的一部分查看。相反,作为测试运行的一部分,根据您使用的 MSBuild 任务或外部程序集,您将生成的 xml 输出上传到 TeamCity。然后,TeamCity 将使用它来显示测试运行结果。 MSBuild 扩展包有一个 MSTest 运行器 msbuildextensionpack.codeplex.com
    • 您可以通过构建服务消息将mstest的结果传回,见:confluence.jetbrains.com/display/TCD7/…
    • @Bronumski,[不能@James] 谢谢你的回复! TCD7 url 说“typeID 可以是以下之一”,并且该列表省略了 msbuild。因此,我推断要将结果传回 TC 的日志,只能通过某种测试来完成,而不是纯粹的 msbuild。我做对了吗?这就是为什么我认为 msbuild 无法传回数据的原因。你是在澄清,如果我有一个虚拟测试,那么我可以,对吧?它必须在构建之后运行。
    • @AnneTheAgile 嗨,安妮,您的跑步者是 msbuild,但您的导入类型是 mstest,您应该将 typeid 设置为。我已经更新了示例来展示这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-13
    • 1970-01-01
    • 1970-01-01
    • 2012-01-13
    • 2019-12-01
    • 2015-07-29
    • 1970-01-01
    相关资源
    最近更新 更多