伊斯坦布尔代码覆盖从Node访问的信息

时间:2016-11-02 14:42:29

标签: javascript node.js istanbul

上下文

我正在为Node.js开发living-tests。在这种情况下,我对如何正常完成事情并不是那么感兴趣,而是如何更好地完成它们,因此必然会有所不同。

问题

从javascript测试脚本,我希望能够指定一些测试代码要涵盖的内容。所以,让我说我有File原型,我想测试path属性。就在执行此属性的代码之前,我想以某种方式指定正在测试的内容。然后在该代码运行之后,我想指定它已完成。在这些点之间,当代码被执行时,我不想计算除了该属性之外的任何其他任何代码覆盖。通过这种方式,开发人员可以确保某些内容不仅仅是偶然覆盖,这可以帮助开发人员了解他们拥有的内容并且没有经过全面测试。这是为了部分解决代码覆盖问题,而不一定意味着某些东西经过了充分测试。

方法

据我所知,伊斯坦布尔是javascript唯一常用和推荐的代码覆盖工具,因此我目前正在使用该工具。我知道你必须在启动节点之前启动伊斯坦布尔,因此它可以检测你的代码。但是,我怀疑只要已经完成,节点中运行的代码应该能够访问到目前为止已覆盖的内容的代码覆盖率信息。我很确定如果我能做到这一点我可以弄清楚如何使用它来实现我想要的目标。

如何从javascript访问代码覆盖率信息?

1 个答案:

答案 0 :(得分:2)

问题是要求找不到解决问题的东西......

您可以在触发代码覆盖率运行后访问coverage.json中的信息。见https://github.com/gotwarlost/istanbul/blob/master/coverage.json.md

但我认为,你需要的是其他一些算法。您将其指定为"我想以某种方式 指定正在测试的内容。"不幸的是,这太过模糊,无法推荐任何东西。

代码覆盖工具只是观察在测试期间执行的内容,并将其他所有内容标记为"未经测试"。那里没有逻辑。