我可以使用'记者'来报告我的测试结果。 jest配置的方法,但它显示了控制台上的所有报告。我想要它创建像.txt
这样的文件有可能吗?
这是我的开玩笑配置;
"jest": {
"moduleNameMapper": {
"^.+\\.css$": "identity-obj-proxy"
},
"verbose": true,
"bail": true,
"reporters": [
"default",
"<rootDir>/__test__/my-custom-reporter.js"
]
}
和my-custom-reporter.js;
class MyCustomReporter {
constructor(globalConfig, options) {
this._globalConfig = globalConfig;
this._options = options;
}
onRunComplete(contexts, results) {
console.log('Custom reporter output:');
console.log('GlobalConfig: ', contexts);
console.log('Options: ', results);
}
onTestResult(test, testResult, aggregatedResult) {
console.log('onTestResult:');
console.log('test: ', test);
console.log('testResult: ', testResult);
console.log('aggregatedResult: ', aggregatedResult);
}
onRunStart(results, options) {
console.log('onRunStart:');
console.log('results: ', results);
console.log('Options: ', options);
}
onTestStart(test) {
console.log('onTestStart:');
console.log('test: ', test);
}
getLastError() {
if (this._shouldFail) {
return new Error('my-custom-reporter.js reported an error');
}
}
}
module.exports = MyCustomReporter;
答案 0 :(得分:0)
我找到了一种在文件中报告结果的完美方式。
我用&#34; 写文件-p &#34;模块将结果写入json文件。
所以我的班级变成了这样;
const writeFileP = require("write-file-p");
class MyCustomReporter {
constructor(globalConfig, options) {
this._globalConfig = globalConfig;
this._options = options;
}
onRunComplete(contexts, results) {
console.log('onRunComplete:');
// Write a json syncronously
writeFileP.sync(`${__dirname}/testResults/onRunComplete.json`, JSON.stringify(contexts)+"\n\n\n"+JSON.stringify(results));
}
onTestResult(test, testResult, aggregatedResult) {
console.log('onTestResult:');
// Write a json syncronously
writeFileP.sync(`${__dirname}/testResults/onTestResult.json`, JSON.stringify(test)+"\n\n\n"+JSON.stringify(testResult)+"\n\n\n"+JSON.stringify(aggregatedResult));
}
onRunStart(results, options) {
console.log('onRunStart:');
// Write a json syncronously
writeFileP.sync(`${__dirname}/testResults/onRunStart.json`, JSON.stringify(results)+"\n\n\n"+JSON.stringify(options));
}
onTestStart(test) {
console.log('onTestStart:');
// Write a json syncronously
writeFileP.sync(`${__dirname}/testResults/onTestStart.json`, JSON.stringify(test));
}
getLastError() {
if (this._shouldFail) {
return new Error('my-custom-reporter.js reported an error');
}
}
}
module.exports = MyCustomReporter;
因此,所有报告都写入 json 文件。