首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kotlin Multiplatform项目中的javascript代码使用什么代码覆盖工具?

Kotlin Multiplatform项目中的javascript代码使用什么代码覆盖工具?
EN

Stack Overflow用户
提问于 2020-07-10 10:49:19
回答 1查看 165关注 0票数 1

我可以在JVM端使用jacoco,但是我可以在多平台项目的JS端使用什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-20 19:27:06

目前,还没有集成的代码覆盖工具。但是您可以使用karma.config.dhttps://karma-runner.github.io/0.8/config/coverage.html手动实现它。

注意:您只能使用browser目标来执行此操作

如何设置:需要向测试源集添加依赖项,最好是dev依赖项,但dev依赖项仅在1.4-M3之后才有可能,因此可以用通常的npm替换它们。

代码语言:javascript
复制
implementation(devNpm("istanbul-instrumenter-loader", "3.0.1"))
implementation(devNpm("karma-coverage-istanbul-reporter", "3.0.3"))

之后,在项目文件夹的karma.config.d文件夹中创建js文件

代码语言:javascript
复制
;(function(config) { // just IIFE to protect local variabled
    const path = require("path") // native Node.JS module
    config.reporters.push("coverage-istanbul")
    config.plugins.push("karma-coverage-istanbul-reporter")
    config.webpack.module.rules.push(
        {
            test: /\.js$/,
            use: {loader: 'istanbul-instrumenter-loader'},
            include: [path.resolve(__dirname, '../module-name/kotlin/')] // here is necessary to use module-name in `build/js/packages`
        }
    )
    config.coverageIstanbulReporter = {
        reports: ["html"]
    }
}(config));

它适用于Kotlin代码(但老实说,报告是有争议的),但不管怎样,它提供了js和Kt文件的统计信息,但对于js文件显示为0%。

我创建了一个功能请求:https://youtrack.jetbrains.com/issue/KT-40460

更新:包含结果的HTML文件是build/js/packages/{$module-name}-test/coverage/index.html格式的。您可以运行buildbrowserTest任务。

注意:如果你在Windows上,你必须把include: [path.resolve(__dirname, '../module-name/kotlin/')]改成include: [path.resolve(__dirname, '..\\module-name\\kotlin\\')]

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62826599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档