如何在使用QUnit, PhantomJS和JSCover时组织我的JavaScript单元测试

How to organize my JavaScript unit tests when using QUnit, PhantomJS and JSCover

本文关键字:JSCover 我的 单元测试 JavaScript PhantomJS QUnit      更新时间:2023-09-26

我正在尝试使用PhantomJS和QUnit为我的JavaScript代码设置自动单元测试,并且还使用JSCover生成代码覆盖率-基本上如下所述:http://julianhigman.com/blog/2013/07/23/testing-javascript-with-qunit-phantomjs-and-jscover/

问题是,这个页面,以及我在这个主题上看到的其他页面,假设您只有一个HTML页面,它将加载并运行项目中所有的QUnit测试。

在我的例子中,我有大约50个JavaScript源文件,以及对应的.js单元测试文件。我打算为每个单元测试文件使用单独的HTML页面,这样在开发过程中我就可以在浏览器中单独运行特定文件的测试。但是,除了必须维护50个(诚然是非常基本的)HTML文件的开销之外,我不确定如何使JSCover很好地工作(不生成50个覆盖率报告)。

对于我来说,将所有50个单元测试文件包含到一个HTML页面中是最佳实践吗?

我会选择在一个HTML页面中包含所有50个单元测试文件。

如果您不想一直运行所有的测试,您可以使用QUnit模块将测试分解成组。然后,您可以通过使用QUnit页面右上方的下拉列表,或者通过在URL中使用查询字符串参数(例如http://localhost:8000/qunit-tests.html?module=SomeModuleNamefile:///path/to/your/qunit-tests.html?module=SomeModuleName),一次运行一个模块的测试。

在同一个HTML页面中包含所有50个测试文件意味着您可以一次运行所有测试,然后为所有代码生成代码覆盖率。我也忍不住觉得在50个HTML页面上一个接一个地运行PhantomJS会比在一个更大的HTML页面上运行要慢得多。