Gradle打包編譯時跳過test測試


使用gradle編譯項目時,若指定了測試目錄,則進行gradle build時會在編譯完成后自動執行gradle test任務。

sourceSets {
    main {
        java.srcDirs = ['src']
    }
    test {
        java.srcDirs = ['test']
    }
}

test {
    include '**/Test*.class'
    exclude '**/TestDataFetchers.class'
}

但是如果我不想build時自動執行測試,而是手動執行測試呢?我可不想在生產環境執行測試代碼。
很簡單,只要在部署腳本使用-x test就可以了。

gradle build -x test

手動執行test

gradle test

下面這種方法是不可取的,不僅build不會執行test,手動執行也不會執行

buildscript {
    ext.kotlin_version = '1.3.10'

    repositories {
        maven {url 'http://maven.aliyun.com/nexus/content/groups/public/'}
        mavenCentral()
    }

    dependencies {
        classpath "com.github.jengelman.gradle.plugins:shadow:2.0.3"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }

    //skip Test tasks
    gradle.taskGraph.whenReady {
        tasks.each { task ->
            if (task.name.contains("test"))
            {
                task.enabled = false
            }
        }
    }
}
> Task :testClasses SKIPPED
Skipping task ':testClasses' as task onlyIf is false.
:testClasses (Thread[Task worker for ':',5,main]) completed. Took 0.0 secs.
:test (Thread[Task worker for ':',5,main]) started.

> Task :test SKIPPED
Skipping task ':test' as task onlyIf is false.
:test (Thread[Task worker for ':',5,main]) completed. Took 0.0 secs.


引用 -->
作者:鵝鵝鵝_
鏈接:https://www.jianshu.com/p/61c5d163a4c9


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM