首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >配置gradle-pitest CustomMessageMissingMethodException时获取插件

配置gradle-pitest CustomMessageMissingMethodException时获取插件
EN

Stack Overflow用户
提问于 2020-07-27 02:48:09
回答 1查看 309关注 0票数 0

我正在尝试为我的Android本地UnitTests添加突变测试。我在这里找到了我试图使用“官方”推荐的https://pitest.org/插件包含的gradle框架:https://gradle-pitest-plugin.solidsoft.info/

Gradle包装器版本: 6.5.1

但我想不出怎么让它启动和运行。插件网页上的文档非常零散,所以我甚至不知道我的gradle配置是否正确。

我的build.gradle文件:

代码语言:javascript
复制
buildscript {
    ext.kotlin_version = '1.3.72'

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.6.4'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'info.solidsoft.gradle.pitest:gradle-pitest-plugin:1.5.1'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

我的build.gradle (app)文件:

代码语言:javascript
复制
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'info.solidsoft.pitest'

android { ... }

dependencies { ... }

pitest {
    targetClasses = ['training.your.app.data.viewmodel.*']  
    pitestVersion = '1.5.1'
    threads = 4
    outputFormats = ['XML', 'HTML']
    timestampedReports = false
}

使用这种方法,集成开发环境(AndroidStudio 4) gradle sync告诉我:

Caused by: org.gradle.internal.metaobject.AbstractDynamicObject$CustomMessageMissingMethodException: Could not find method pitest() for arguments [build_w05scwyltsg8pepn5z5mp7e1$_run_closure3@651693d3] on project ':app' of type org.gradle.api.Project.

如果我尝试通过gradlew pitest执行此操作,则会得到相同的结果。

我最好的猜测是我缺乏很多gradle知识。有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2020-07-27 19:07:30

多亏了亨利的评论,我才能用gradle- pitest plugin (https://github.com/koral--/gradle-pitest-plugin)的分支来运行pitest。

长话短说:

build.gradle

代码语言:javascript
复制
buildscript {
    ext.kotlin_version = '1.3.72'

    repositories {
        mavenCentral()
        google()
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.6.4'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'pl.droidsonroids.gradle:gradle-pitest-plugin:0.2.2'
    }
}

build.gradle (app)

代码语言:javascript
复制
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'pl.droidsonroids.pitest'

android { ... }

dependencies { ... }

pitest {
    reportDir = 'build/pitest/reports'
    targetClasses = ['training.your.app.data.viewmodel.*']
    threads = 6
    outputFormats = ['HTML']
    timeoutConstInMillis = 20000
    verbose = true
}

这不适用于Gradle版本的6.5.1。这个插件的作者声称已经用插件版本0.2.4解决了这个问题。但是这个版本还没有发布到maven central。

因此,在pl.droidsonroids.gradle:gradle-pitest-plugin:0.2.2中使用Gradle 6.3就可以了。

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

https://stackoverflow.com/questions/63104302

复制
相关文章

相似问题

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