【问题标题】:How to measure code coverage in a webapp through unit and functional tests如何通过单元测试和功能测试来衡量 webapp 中的代码覆盖率
【发布时间】:2019-03-11 06:18:43
【问题描述】:

我对我一直在研究的一项任务感到有些困惑。这是关于 react webapp 中的代码覆盖率。

我使用 jest + 酶实现了一些单元测试。还有一些功能测试,使用 cucumber 获取 gherkin 功能和 puppeteer 进行浏览器自动化。

我已经能够从 webpack 构建的代码中获得覆盖率,并通过功能测试使用 puppeteer 和 istanbul 在我的本地主机上提供服务。此外,我使用 jest 从单元测试中获得代码覆盖率(顺便说一句,它包括 istanbul 来做到这一点)。

问题是:我觉得这是两个不同的指标,因为我用 jest + 酶文件逐个文件测试组件,另一方面,我有来自 puppeteer 的代码覆盖率,实际上是一个构建的 js 文件。

目标应该是从单元测试和功能测试中获得代码覆盖率。

所以,我的问题是:

  • 有意识,测量单元测试和功能测试的代码覆盖率?

  • 是否有意识,合并来自单元测试和功能测试的代码覆盖率?如果知道该怎么做?

  • 从 web 应用程序中获取代码覆盖率的最佳方法是什么?

【问题讨论】:

标签: reactjs unit-testing code-coverage bdd functional-testing


【解决方案1】:

总体而言,您测量、记录和报告代码覆盖率的方法将根据您的用例量身定制。这意味着您的问题没有明确的正确或错误答案。我将尝试为您提供一些想法,帮助您决定最适合您和您的团队的方法。

首先我会问自己为什么要测量代码覆盖率? IE。你试图创造的团队运作方式的变化是什么?在回答您的具体问题时,我会回到这个问题。

此时值得确保代码覆盖率会鼓励您正在寻找的行为。有关这方面的更多信息,请查看paper。我试图在最近的blog post 中解决这个问题。

我在这里对您所在团队的布局做了一些假设,如果假设有误,请原谅我。

measure the code coverage on unit tests and functional tests?

如果您想鼓励团队编写测试,或者自动化大部分测试,那么可以衡量代码覆盖率,因为它可以很好地衡量人们是否以与代码相同的速度添加测试在改变。

merge code coverage from unit tests and functional tests?

让我们考虑一下您希望鼓励开发人员编写更多单元测试的示例。在这种情况下,我会说不,不要合并覆盖范围。期望的行为改变是让开发人员编写更多测试,因此,您不希望通过报告包含来自 QA 团队的功能测试的指标来掩盖他们缺乏测试。

但是,如果您正在考虑软件工程团队并希望整个团队(开发人员和 QA)进行更多测试,那么绝对要结合覆盖率数字并报告总覆盖率。

if has sense how to do that?

有很多工具可以让您组合多次运行的覆盖率信息。我的最爱之一(假设您可以使用基于云的服务)是CodeCov。这是一种以最少的设置工作来可视化代码覆盖率的好方法。

what is the best approach to get code coverage from a webapp?

我将把这个留给比我更了解你所使用的技术的人。

【讨论】:

    猜你喜欢
    • 2017-10-09
    • 1970-01-01
    • 2015-07-07
    • 2017-02-21
    • 1970-01-01
    • 2010-10-14
    • 2014-05-11
    相关资源
    最近更新 更多