【问题标题】:Using Post-Build Event To Execute Unit Tests With MS Test in .NET 2.0+在 .NET 2.0+ 中使用构建后事件执行带有 MS 测试的单元测试
【发布时间】:2010-10-05 04:46:09
【问题描述】:

我正在尝试在 .NET 3.5 中设置一个构建后事件,该事件将运行一套带有 MS 测试的单元测试。我发现this 帖子显示了如何使用 MbUnit 调用 bat 文件,但我想看看是否有人用 MS 测试做过这种类型的事情?

如果是这样,我会对 bat 文件的样例感兴趣

【问题讨论】:

    标签: unit-testing build-process mstest


    【解决方案1】:

    我们以相同的风格使用 NUnit,并决定迁移到 MSTest。这样做时,我们只是将以下内容添加到适用的 MSTest 项目的 Post-Build 事件中:

    CD $(TargetDir)
    "$(DevEnvDir)MSTEST.exe" /testcontainer:$(TargetFileName)
    

    完整的 MSTest 命令行选项集可以在 applicable MSDN site 找到。

    【讨论】:

      【解决方案2】:

      我个人不建议将运行单元测试作为编译过程的一部分。相反,请考虑类似 ReSharper(+ 适当的单元测试运行程序,或者他们现在如何称呼这些)或其他一些 GUI 运行程序。

      【讨论】:

      • 我同意,但我的开发人员伙伴们并没有这样做......所以我试图让这个后期构建强制它......
      【解决方案3】:

      不是在构建后事件中进行,每次编译时都会发生这种情况,我会考虑设置一个持续集成服务器,如CruiseControl.Net。它将为您提供一个紧密的反馈周期,但不会在您每次构建应用程序时都运行测试来阻止您的工作。

      如果您想运行您当前正在开发的一组测试,Anton 建议使用ReSharper 会很有效。您可以创建一个测试子集以在您希望时执行,并且它足够聪明,可以在需要时为您编译。当您在那里获取演示时,如果您还没有许可证,请获取Team City。它是另一个有前途的 CI 服务器。

      如果您想使用这种方法来控制构建质量,您可能会发现随着测试数量的增加,您不再希望每次按 F5 测试更改时都等待运行 1000 个测试.

      【讨论】:

      • 好建议 - 我正在使用 VS2008 并且可以快速运行我的测试(正如你提到的 R#)。我们去年年底购买了 TFS ......但出于某种原因,致力于完成这项工作的团队需要一些时间 :(
      • 现在,您可以设置 CC.Net 或除 Team Build 之外的其他 CI 服务器,以便在您的本地机器上运行,或者在某人的办公桌下安装临时服务器(也称为未使用的桌面)。我们很难让“企业”团队设置“企业”解决方案,所以我们自己做了。
      • 在 CI 服务器上而不是在编译过程中运行它的缺点是开发人员不会收到损坏警报。开发人员在不知不觉中推送导致 CI​​ 服务器失败的更改是很常见的,这会导致大量流失和羞耻:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-08
      相关资源
      最近更新 更多