【发布时间】:2013-11-30 19:18:33
【问题描述】:
我使用 karma + jasmine + phantom 进行无头 Javascript 测试。
我遇到的问题是我有一个非常大的应用程序,其中包含很多要测试的 JS 模块。 所以我需要为每个案例定制模拟,并为每个案例定制包含。
karma.conf.js 只允许我拥有 files 数组,其中包含要包含的所有文件的模式,如果我的应用程序很小而不是包含大量文件和模块的大应用程序,那就太好了。
我的解决方案 - 为每个测试用例创建多个 karma.conf.js 文件。但这真的很糟糕,因为有这么多的配置文件是一个很大的膨胀,如果我想更改一个设置(如 autoWatch),我需要更改所有的配置文件。
我的其他解决方案 - 在karma.conf.js 前面编写自定义处理程序以处理其他参数(规范文件或文件夹以绕过因果关系以搜索其配置文件)并简单地动态构建files 数组。
现在我看到的问题是业力只运行一次,我将被限制运行一个测试规范......并且我不想修改业力本身。
我也考虑过使用 Grunt,但还没有找到使其适用于多个测试用例的方法。
顺便说一下,我的理想结构应该是这样的:
拥有文件:
test/specs/category/unit1_spec.js
test/mocks/category/unit1_mock.js
配置文件:
files: [
{
'includes': [array_of_includes],
'spec': 'spec_file'
}
]
mock 文件会自动从相应的 mocks 目录中抓取。
我可以使用karma start test/specs/category,它会递归地运行文件夹中的所有测试用例。
tl;dr - 我想轻松地测试一个大型应用程序。
我将不胜感激任何处理此任务的建议。
【问题讨论】:
标签: javascript testing gruntjs karma-runner