Я хотел бы запустить несколько тестов в своем собственном процессе и как-то объединить отчеты istanbul.
Например, две реализации:
//sut1.js
'use strict'
module.exports = function() {
return 42
}
а также
//sut2.js
'use strict'
module.exports = function() {
return '42'
}
и два теста:
//test1.js
'use strict'
const expect = require('chai').expect
const sut1 = require('./sut1.js')
expect(sut1()).to.equal(42)
expect(sut1()).not.to.equal('42')
console.log('looks good')
а также:
//test2.js
'use strict'
const expect = require('chai').expect
const sut2 = require('./sut2.js')
describe('our other function', function() {
it('should give you a string', function() {
expect(sut2()).to.equal('42')
})
it('should not give a a number', function () {
expect(sut2()).not.to.equal(42)
})
})
Я могу получить отчет о покрытии для одного из них:
istanbul cover --print both test1.js
istanbul cover --print both -- node_modules/mocha/bin/_mocha test2.js
Каков самый простой способ получить сводный отчет о покрытии? Есть ли один вкладыш, который также будет выводить его?
С моккой или жасмином вы можете просто передать несколько файлов, но здесь я хочу фактически запустить разные скрипты.
Если кто-то заинтересован, ответ:
...
#!/bin/sh
# test.sh
node test1.js
node_modules/mocha/bin/mocha test2.js
а потом иди так
nyc ./test.sh
и вы увидите комбинированный тестовый вывод:
----------|----------|----------|----------|----------|----------------|
File | % Stmts | % Branch | % Funcs | % Lines |Uncovered Lines |
----------|----------|----------|----------|----------|----------------|
All files | 100 | 100 | 100 | 100 | |
sut1.js | 100 | 100 | 100 | 100 | |
sut2.js | 100 | 100 | 100 | 100 | |
test1.js | 100 | 100 | 100 | 100 | |
test2.js | 100 | 100 | 100 | 100 | |
----------|----------|----------|----------|----------|----------------|
Вы также можете сделать это в сценариях package.json следующим образом:
"_test": "node test1.js && mocha test2.js",
"test": "nyc npm run _test",