如何在 mocha.js(或其他库)中修改测试结果的输出
How to modify test results' output in mocha.js (or another library)
我正在创建一个将由 mocha 运行 开发的测试套件。在测试中,我计划至少使用 should
和 chai
。我正在测试 JSON 个对象。我希望 mocha 对成功的测试保持沉默,并且我想控制 运行 末尾的错误。现在,有很多红色文本描述 JSON 对象和其他信息。我想要的是覆盖输出。
这是我将从 testData
.
导入的 JSON 对象中元素的示例测试
var should = require("should");
var chai = require("chai");
var expect = chai.expect;
const testData = require("./testData");
for (t of testData.data) {
describe("This will fail", function() {
it("Should have a zipperNut",function(done) {
t.should.have.property('zipperNut');
done();
});
});
}
我只想看到这个:
$ mocha testSuite.js
zipperNut
$
等等我想要的所有测试运行。我可以这样做吗?我需要使用不同的库吗?
Mocha 的输出由称为“默认报告程序”的东西确定。如果你想改变输出,你可以指定一个不同的报告者,这大概可以通过 npm 或类似的方式获得。要指定新的自定义报告程序,您可以这样做:
$ mocha --reporter my-reporter.js
其中 my-reporter.js 是包含我的“记者”的文件。对我来说,我只想要失败测试的简单名称,所以我的报告者看起来像:
'use strict';
const Mocha = require('mocha');
const {
EVENT_RUN_END,
EVENT_TEST_FAIL,
} = Mocha.Runner.constants;
class MyReporter {
constructor(runner) {
const stats = runner.stats;
runner
.on(EVENT_TEST_FAIL, (test, err) => {
console.log(
`${test.title}`
);
})
.once(EVENT_RUN_END, () => {
console.log(`end: ${stats.passes}/${stats.passes + stats.failures} ok`);
});
}
}
module.exports = MyReporter;
文档在这里:
我正在创建一个将由 mocha 运行 开发的测试套件。在测试中,我计划至少使用 should
和 chai
。我正在测试 JSON 个对象。我希望 mocha 对成功的测试保持沉默,并且我想控制 运行 末尾的错误。现在,有很多红色文本描述 JSON 对象和其他信息。我想要的是覆盖输出。
这是我将从 testData
.
var should = require("should");
var chai = require("chai");
var expect = chai.expect;
const testData = require("./testData");
for (t of testData.data) {
describe("This will fail", function() {
it("Should have a zipperNut",function(done) {
t.should.have.property('zipperNut');
done();
});
});
}
我只想看到这个:
$ mocha testSuite.js
zipperNut
$
等等我想要的所有测试运行。我可以这样做吗?我需要使用不同的库吗?
Mocha 的输出由称为“默认报告程序”的东西确定。如果你想改变输出,你可以指定一个不同的报告者,这大概可以通过 npm 或类似的方式获得。要指定新的自定义报告程序,您可以这样做:
$ mocha --reporter my-reporter.js
其中 my-reporter.js 是包含我的“记者”的文件。对我来说,我只想要失败测试的简单名称,所以我的报告者看起来像:
'use strict';
const Mocha = require('mocha');
const {
EVENT_RUN_END,
EVENT_TEST_FAIL,
} = Mocha.Runner.constants;
class MyReporter {
constructor(runner) {
const stats = runner.stats;
runner
.on(EVENT_TEST_FAIL, (test, err) => {
console.log(
`${test.title}`
);
})
.once(EVENT_RUN_END, () => {
console.log(`end: ${stats.passes}/${stats.passes + stats.failures} ok`);
});
}
}
module.exports = MyReporter;
文档在这里: