【问题标题】:How to fail build if test method fails?如果测试方法失败,如何构建失败?
【发布时间】:2013-12-01 10:34:11
【问题描述】:

我的参考是http://msdn.microsoft.com/de-de/library/ms182532.aspx

使用 Visual Studio。假设有一个解决方案Project.SuperApp,其中包含一些项目和一个单元测试项目。如果我想运行测试,我首先必须构建解决方案,然后从 Test-Explorer 运行所有测试。即使一项测试失败,软件也已经构建并准备好部署。这对我来说似乎是一个错误。

如果您想构建/打包软件组件,则使用 Maven 等其他工具首先执行测试。如果一项测试失败,即使它编译,软件组件也不会被构建/打包。

如何告诉 Visual Studio 先执行测试用例,如果一个测试用例失败则构建失败?

提前致谢

【问题讨论】:

  • 你为什么要这样做?无论失败如何,您都希望运行每个单元测试。例如,如果您的第 50 次测试失败,但您在第 1 次失败时停止构建,则您需要构建至少 50 次才能收到所有失败消息。这会延迟您的修复。
  • 没有。测试不应在第一次失败的测试时停止。每个测试都应该执行。但是,如果一项测试失败,则应该没有 .exe、.dll 作为输出,因为它显然有错误。
  • 我不确定 Maven 是如何工作的,但我没有看到一种方法来测试一个库而不实际编译它。您可以在不构建代码的情况下对代码运行一些静态分析,但这些不是单元测试。即使您选择为单元测试使用调试版本,您通常也会希望在某个时候针对实际的发布版本运行测试(如果不是单元,则为集成测试),因为调试版本通常具有微妙的功能差异。并且您可以轻松地使用一个脚本,该脚本将选择是否仅在单元测试成功时将输出复制到“已发布”文件夹。

标签: c# visual-studio-2010 unit-testing visual-studio-2012


【解决方案1】:

在 TFS 中,您可以按照以下步骤将其配置为在测试失败时失败:

  1. 编辑“构建定义”
  2. 选择进程
  3. 在 2. 基本 > 授权测试 > 选择测试程序集,您将看到“测试失败时构建失败。将其设置为 true。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-04
    • 2017-12-04
    • 2013-12-12
    • 2013-05-24
    • 2014-07-13
    • 1970-01-01
    • 2019-03-18
    • 1970-01-01
    相关资源
    最近更新 更多