节点 - 使用 mocha 测试时更改输出颜色
Node - change colors on the output when testing with mocha
我有一个 gulp
任务使用 mocha
.
处理 运行ning 测试用例
gulp.task('test', ['cls'], () => {
execout('mocha -r ts-node/register --timeout 999999 --colors test/*.test.ts');
});
我的问题是,如您所见,有些灰线很难看清:
我的问题是,如何更改颜色?
我成功尝试了这里推荐的方法(有效):
https://github.com/mochajs/mocha/issues/802#issuecomment-18254298):
$ gulp test > >(perl -pe 's/\x1b\[90m/\x1b[92m/g') 2> >(perl -pe 's/\x1b\[90m/\x1b[92m/g' 1>&2)
但我不喜欢那样,因为我不想每次都在命令行上写所有这些我想运行那个命令。
然后我尝试将所有这些移动到 gulp
任务中,如下所示:
gulp.task('test', ['cls'], () => {
execout("mocha -r ts-node/register --timeout 999999 --colors test/*.test.ts > >(perl -pe 's/\x1b\[90m/\x1b[92m/g') 2> >(perl -pe 's/\x1b\[90m/\x1b[92m/g' 1>&2)");
});
但后来我在终端上收到以下错误。
ERR: > was unexpected at this time.
另一方面,这里还有一个suggestion/approach,但我不知道怎么用:
https://github.com/mochajs/mocha/issues/1200#issuecomment-62780003
知道如何修改那条难以阅读的灰线的颜色吗?
谢谢!
只需手动更改 base.js 中的颜色即可。
转到:您的项目 root\node_modules\mocha\lib\reporters\base.js 并玩弄数字..
exports.colors = {
pass: 32, //with value 32 your gray "pass" lines become green
fail: 31,
'bright pass': 92,
'bright fail': 91,
'bright yellow': 93,
pending: 36,
suite: 0,
'error title': 0,
'error message': 31,
'error stack': 90,
checkmark: 32,
fast: 90,
medium: 33,
slow: 31,
green: 32,
light: 90,
'diff gutter': 90,
'diff added': 32,
'diff removed': 31
};
或者在您的项目根目录中创建 spec-helper.js 文件。
然后将 --require spec-helper.js
放入 Mocha 的 shell 命令中。 (见下方评论)
// spec-helper.js
var colors = require('mocha/lib/reporters/base').colors;
colors['pass'] = 32;
2020 年更新:
自从 mochaopts 文件弃用并引入配置文件后,您不再需要帮助文件。更改 mocha 源代码是你能做的最糟糕的事情。
现在可以使用javascript格式的配置文件,根据需要重新定义报告器的颜色。
这就是所谓的“猴子修补”,即您在 运行 时即时重新定义对象的属性。 - 最初加载 mocha 时,它使用配置文件。在该文件中,您导入 'mocha/lib/reporters/base'
模块并覆盖颜色或符号。使用该基础文件作为参考。这些更改仅在 运行 时存在,实际源代码将保持不变。
将 .mocharc.js
文件放在根目录中。
//.mocharc.js
const {colors, symbols} = require('mocha/lib/reporters/base');
colors.pass = 32;
symbols.ok = '';
// example config from Mocha repo
module.exports = {
diff: true,
extension: ['js'],
package: './package.json',
reporter: 'spec',
slow: 75,
timeout: 2000,
ui: 'bdd',
'watch-files': ['lib/**/*.js','test/**/*.js'],
'watch-ignore': ['lib/vendor']
};
看看它的外观。
我在这里使用 Windows 终端和 WSL。表情符号可能无法在本机 Windows 控制台中使用,但在 Linux 或 Mac 上应该可以使用。
实际上,在 iTerm 中调整 "Minimum Contrast" 对我来说是侵入性最小的修复。调整值,不可见的文字出现。
另见此处:
https://gitlab.com/gnachman/iterm2/issues/5992#note_38835787
我有一个 gulp
任务使用 mocha
.
gulp.task('test', ['cls'], () => {
execout('mocha -r ts-node/register --timeout 999999 --colors test/*.test.ts');
});
我的问题是,如您所见,有些灰线很难看清:
我的问题是,如何更改颜色?
我成功尝试了这里推荐的方法(有效):
https://github.com/mochajs/mocha/issues/802#issuecomment-18254298):
$ gulp test > >(perl -pe 's/\x1b\[90m/\x1b[92m/g') 2> >(perl -pe 's/\x1b\[90m/\x1b[92m/g' 1>&2)
但我不喜欢那样,因为我不想每次都在命令行上写所有这些我想运行那个命令。
然后我尝试将所有这些移动到 gulp
任务中,如下所示:
gulp.task('test', ['cls'], () => {
execout("mocha -r ts-node/register --timeout 999999 --colors test/*.test.ts > >(perl -pe 's/\x1b\[90m/\x1b[92m/g') 2> >(perl -pe 's/\x1b\[90m/\x1b[92m/g' 1>&2)");
});
但后来我在终端上收到以下错误。
ERR: > was unexpected at this time.
另一方面,这里还有一个suggestion/approach,但我不知道怎么用:
https://github.com/mochajs/mocha/issues/1200#issuecomment-62780003
知道如何修改那条难以阅读的灰线的颜色吗?
谢谢!
只需手动更改 base.js 中的颜色即可。
转到:您的项目 root\node_modules\mocha\lib\reporters\base.js 并玩弄数字..
exports.colors = {
pass: 32, //with value 32 your gray "pass" lines become green
fail: 31,
'bright pass': 92,
'bright fail': 91,
'bright yellow': 93,
pending: 36,
suite: 0,
'error title': 0,
'error message': 31,
'error stack': 90,
checkmark: 32,
fast: 90,
medium: 33,
slow: 31,
green: 32,
light: 90,
'diff gutter': 90,
'diff added': 32,
'diff removed': 31
};
或者在您的项目根目录中创建 spec-helper.js 文件。
然后将 --require spec-helper.js
放入 Mocha 的 shell 命令中。 (见下方评论)
// spec-helper.js
var colors = require('mocha/lib/reporters/base').colors;
colors['pass'] = 32;
2020 年更新:
自从 mochaopts 文件弃用并引入配置文件后,您不再需要帮助文件。更改 mocha 源代码是你能做的最糟糕的事情。
现在可以使用javascript格式的配置文件,根据需要重新定义报告器的颜色。
这就是所谓的“猴子修补”,即您在 运行 时即时重新定义对象的属性。 - 最初加载 mocha 时,它使用配置文件。在该文件中,您导入 'mocha/lib/reporters/base'
模块并覆盖颜色或符号。使用该基础文件作为参考。这些更改仅在 运行 时存在,实际源代码将保持不变。
将 .mocharc.js
文件放在根目录中。
//.mocharc.js
const {colors, symbols} = require('mocha/lib/reporters/base');
colors.pass = 32;
symbols.ok = '';
// example config from Mocha repo
module.exports = {
diff: true,
extension: ['js'],
package: './package.json',
reporter: 'spec',
slow: 75,
timeout: 2000,
ui: 'bdd',
'watch-files': ['lib/**/*.js','test/**/*.js'],
'watch-ignore': ['lib/vendor']
};
看看它的外观。
我在这里使用 Windows 终端和 WSL。表情符号可能无法在本机 Windows 控制台中使用,但在 Linux 或 Mac 上应该可以使用。
实际上,在 iTerm 中调整 "Minimum Contrast" 对我来说是侵入性最小的修复。调整值,不可见的文字出现。
另见此处: https://gitlab.com/gnachman/iterm2/issues/5992#note_38835787