【问题标题】:How can I unit test code coverage?如何对代码覆盖率进行单元测试?
【发布时间】:2016-05-04 06:50:42
【问题描述】:

我的团队正在创建一个 ASP.NET MVC 应用程序。我们正在使用脚手架来帮助我们创建实体。脚手架将创建模型、存储库、控制器和我们拥有的其他一些类。它还为实体构建了一个基本的测试套件。目前正在测试所有脚手架代码。

我想要的是,如果某个类的代码覆盖率低于某个值,则单元测试会失败。例如,Controller 和 Repository 需要尽可能接近 100% 的覆盖率。这些类也将被进一步开发,我想要检查以确保添加到它们的代码正在测试中。

我分别使用 Xunit 和 Moq 进行测试和模拟。

如何实现代码覆盖率测试?

【问题讨论】:

  • ru 使用构建/CI 服务器?比如teamcity?
  • 我们正在通过 Visual Studio Online 进行 CI。
  • 好的,你可以在 TeamCity 中做这种事情(如果有兴趣,请参阅 stackoverflow.com/questions/10296753/…)尽管你在 VS 在线我不知道有什么可能
  • 这当然是一种有趣的方式。然而,因为我们将通过脚手架添加大量代码,这意味着我们需要定期用我们添加的新类更新 dotCover,并告诉它预期的代码覆盖率是多少。如果我们可以将其实现为实际的单元测试,那么脚手架可以添加它,我们不需要任何手动干预。
  • 只是一个指向方向的指针msdn.microsoft.com/en-us/library/jj159524.aspx

标签: c# asp.net-mvc unit-testing moq xunit.net


【解决方案1】:

我们最近在 TFS 2015 服务器上实现了一个类似的用例。它有点粗略,因为我们没有测量特定命名空间的覆盖率,我们只是测试以确保覆盖率不会整体下降。对我们来说,这确保了如果开发人员添加了任何代码,则必须将其覆盖,否则整体指标会降低。

我们的 ALM 小组编写了一个 PowerShell 脚本来读取 TFS 的覆盖率,并将当前构建的覆盖率与之前的构建进行比较。如果它较低,则构建失败。他们将脚本添加到测试后脚本路径中,以便在构建期间运行它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-18
    • 2023-04-07
    • 1970-01-01
    • 2010-10-14
    • 2013-04-16
    • 2014-12-10
    相关资源
    最近更新 更多