我在中有2个测试文件./test
。
假设test1.js
有一个Mocha测试,它启动服务器并针对URI运行各种请求,以确定它们的行为均符合预期。
test2.js
是使用噶负载特定的脚本(包括摩卡测试angular-mocks.js
),并运行在一些浏览器,以确保所有的功能有预期的行为。
在package.json
我有test
这样配置的属性:
"scripts": {
"test": "./node_modules/.bin/mocha --reporter spec -t 5000"
},
npm test
太酷了,我可以从命令行运行Mocha。但是,哦,是的,Mocha同时运行了我的两个脚本,并且test2.js
当然使整个事情崩溃了,因为其中的逻辑假定它在Karma的上下文中运行(对不起,如果我没有正确描述的话)。
我可以有2个测试文件夹,test
等等test-ng
,但我认为最终我希望能够npm test
并运行不同的测试集,即:
"./node_modules/.bin/mocha --reporter spec -t 5000"
"./node_modules/.bin/karma start"
并将它们配置为每个运行正确的js文件。我一直在寻找像疯了一样寻找到客户端和服务器端的测试在同一回购存在的例子,但我只找到的教程和博客等以证明一方或另一方。有人可以在正确的方向帮助我吗?
编辑:我应该考虑/组织这样的测试吗?
./tests/server/**.js
./tests/e2e/**.js
./tests/unit/**.js
我也许是基于默认情况下npm使用./test/
文件夹的事实做出假设。
编辑2:我现在正在或多或少地进行上述操作,并在回购自述文件中描述了我的测试,例如:
可以通过Karma运行角单元测试:
./node_modules/.bin/karma start karma.conf.js
可以通过量角器运行有角度的端到端测试:
./node_modules/.bin/protractor protractor.conf.js
Express单元测试可以通过Mocha运行:
./node_modules/.bin/mocha ...
所以现在我根本不使用它npm test
,我想知道使用它有什么好处。
您可以将以下内容放入您的package.json
:
"scripts": {
"unittest": "mocha --reporter spec tests/test1.js",
"browsertest": "mocha --reporter spec -t 5000 tests/test2.js",
"test": "npm run unittest && npm run browsertest"
}
并让Mocha(或Karma等)每个都有一个脚本,例如,可以分别运行。
$ npm run browsertest
将构建系统的所有部分直接放入package.json中的脚本有很多好处:
./node_modules/.bin/mocha
,因为npm已经知道./node_modules/.bin
。start
,stop
,test
等),这反过来又使得它更容易与其他人协作,人以及框架(如的Phusion客运)。您可以npm run
用来获取脚本列表。
有关优点的更详尽描述,请参见Keith Cirkel的精彩博客文章。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句