gpt4 book ai didi

使用 Selenium + istanbul 的 javascript 代码覆盖率

转载 作者:行者123 更新时间:2023-12-04 01:51:37 26 4
gpt4 key购买 nike

有人可以帮助我了解如何在运行 Selenium 测试用例时使用 Istanbul 获得 JavaScript 代码覆盖率吗?

我已经经历了this链接但无法获取。我如何在我的案例中使用它?我的测试在调用远程服务器的本地浏览器中运行。Selenium 测试用例是用 Java 编写的。

最佳答案

https://github.com/alex028502/istanbulseleniumexample

我也很难理解,所以我用 webpack 做了上面的例子。

module.exports = {
devtool: 'source-map',
mode: 'none',
module: {
rules: [
// { test: /\.js$/, loader: 'babel-loader', exclude: /node_modules/ },
{
resolve: {
extensions: ['.js'],
},
use: {
loader: 'istanbul-instrumenter-loader',
options: {esModules: true},
},
enforce: 'post',
exclude: /node_modules/,
},
{
test: /\.coffee$/,
use: [
{loader: 'coffee-loader'},
],
},
],
},
entry: './src/index.js',
output: {
path: __dirname + '/public/',
filename: 'index.js',
},
};

然后如果你在浏览器中运行检测代码,你可以像这样下载它

coverage_info = _driver.execute_script('return JSON.stringify(window.__coverage__);')
# each report needs a unique name
# but we don't care for this example which report corresponds
# to which test
timestamp = datetime.datetime.timestamp(datetime.datetime.now())
file = open("nyc_output/coverage%s.json" % timestamp, 'w')
file.write(coverage_info)
file.close()

然后生成这样的报告

node_modules/.bin/nyc report -t nyc_output

如果您不使用 webpack,您只需像粘贴示例中那样使用命令行检测代码,它会创建一个包含检测代码的新文件夹。

# from https://medium.com/@the1mills/front-end-javascript-test-coverage-with-istanbul-selenium-4b2be44e3e98
mkdir public-coverage
cp -a public/. public-coverage/ # copy all files over
istanbul instrument public \
--output public-coverage \
--embed-source true

我能够在没有你提到的链接的情况下完成的部分是 istanbul 中间件

关于使用 Selenium + istanbul 的 javascript 代码覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52747010/

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