gpt4 book ai didi

javascript - 以编程方式使用 Istanbul 尔的最少代码

转载 作者:数据小太阳 更新时间:2023-10-29 05:37:48 25 4
gpt4 key购买 nike

我要执行命令

istanbul cover node_modules/mocha/bin/_mocha dist/test

使用 Istanbul 尔编程 API。但是文档并没有说太多,除了一切皆有可能并链接到大量的 API 文档之外。我在互联网上找不到任何简短的例子。我不想生成子进程或使用 NPM 中的另一个模块。我知道如何在没有覆盖的情况下以编程方式运行 Mocha,所以这不是问题。

最佳答案

我想出了一种方法来做到这一点,但它不太漂亮。如果您eval(我知道!)检测代码,Istanbul 会将覆盖对象写入全局变量__coverage__。如果愿意,您还可以在仪器的构造函数中指定全局变量的名称。这是一个命令行脚本,显示了如何完成:

const istanbul = require('istanbul');
const instrumenter = new istanbul.Instrumenter();
const collector = new istanbul.Collector();
const fs = require('fs');
const filename = 'file.js';

fs.readFile(filename, 'utf-8', (err, data) => {
instrumenter.instrument(data, filename, (err, generatedCode) => {
eval(generatedCode);
console.log(JSON.stringify(global['__coverage__']));
});
});

文件部分和console.log只是为了做一个完整的demo。您真正需要的只是instrumenteval。您是否会在这里使用 eval 由您自己决定。

关于javascript - 以编程方式使用 Istanbul 尔的最少代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39302198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com