【发布时间】:2016-11-02 14:42:29
【问题描述】:
上下文
我正在为 Node.js 开发 living-tests。在这种情况下,我对通常如何完成事情并不太感兴趣,而是如何将它们做得更好,因此必然会有所不同。
问题
通过一个 javascript 测试脚本,我希望能够指定一些测试代码要涵盖的内容。所以假设我有一个File 原型,我想测试path 属性。就在执行此属性的代码之前,我想以某种方式指定正在测试的内容。然后在该代码运行后,我想指定它已完成。在这些点之间,当代码被执行时,我不想计算任何覆盖该属性以外的任何其他内容的代码覆盖率。通过这种方式,开发人员可以确保某些内容不仅仅被偶然覆盖,这可以帮助开发人员了解他们拥有和未彻底测试的内容。这是为了部分解决代码覆盖率问题,并不一定意味着某些东西经过了很好的测试。
接近
据我所知,Istanbul 是唯一常用和推荐的 javascript 代码覆盖工具,因此我目前正在强制使用该工具。我知道您必须在启动节点之前启动伊斯坦布尔,这样它才能检测您的代码。但是,我怀疑只要这样做了,在 node 中运行的代码应该能够访问有关到目前为止已涵盖内容的代码覆盖率信息。我很确定如果我能做到这一点,我可以弄清楚如何使用它来完成我想要的。
如何从 javascript 访问代码覆盖率信息?
【问题讨论】:
-
blanket.js 也存在。我以前用过一次,不确定它是否对你有帮助。
-
@clay 谢谢。我将毯子.js 作为最后的手段保存,因为它不是一个维护的项目。
-
从到目前为止的答案/ cmets 来看,问题本身可以用不同的方式解释。让我解释一下我是否明白:给定一个特定的测试,只考虑有意测试的代码被覆盖。这意味着您在围绕要测试的相关代码的注释中引用您的测试用例。当且仅当测试运行通过此注释特别指定属于此测试的代码时,才考虑将其覆盖。对吗?
-
似乎如果我只问我想知道什么,人们会抱怨他们不明白我真正想要解决的问题,但是当我提供上下文时,他们抱怨这使得问题可以解释......
-
我只想访问目前为止所涵盖的内容。希望我能从那里弄清楚其余的。
标签: javascript node.js istanbul