Gradle (Kotlin DSL) 测试未执行

标签 gradle gradle-kotlin-dsl

我有一个多项目设置,但想在子项目中运行测试。

我的文件结构遵循约定:

+ common-scripting
  + src
    + main
      + kotlin
      + resources
    + test
      + kotlin
         + scripting
            + ValueTest.kt
      + resources

在我的 ValueTest.kt 中,我有一个虚拟测试用例:

package scripting

import org.testng.Assert.assertTrue
import org.testng.annotations.Test

class ValueTest {

    @Test
    fun testIt() {
        assertTrue(false)
    }
}

我的构建脚本是这样的:

repositories {
    mavenCentral()
}

plugins {
    kotlin("jvm")
    java
}

dependencies {
    compile(kotlin("stdlib-jdk8"))
    compile(kotlin("script-runtime"))
    compile(kotlin("script-util"))
    compile(kotlin("compiler-embeddable"))

    testImplementation("org.testng:testng:6.14.3")
}

但是,当我运行测试时:

> gradlew.bat --info :common-scripting:cleanTest :common-scripting:test

> Task :common-scripting:clean
Task ':common-scripting:clean' is not up-to-date because:
  Task has not declared any outputs despite executing actions.

> Task :common-scripting:compileKotlin
Task ':common-scripting:compileKotlin' is not up-to-date because:
  Output property 'destinationDir' file C:\balage\git\rlog_legacy\_rlog\common-scripting\build\classes\kotlin\main has been removed.
  Output property 'destinationDir' file C:\balage\git\rlog_legacy\_rlog\common-scripting\build\classes\kotlin\main\META-INF has been removed.
  Output property 'destinationDir' file C:\balage\git\rlog_legacy\_rlog\common-scripting\build\classes\kotlin\main\META-INF\common-scripting.kotlin_module has been removed.
All input files are considered out-of-date for incremental task ':common-scripting:compileKotlin'.
Using Kotlin incremental compilation
Options for KOTLIN DAEMON: IncrementalCompilationOptions(super=CompilationOptions(compilerMode=INCREMENTAL_COMPILER, targetPlatform=JVM, reportCategories=[0], reportSeverity=2, requestedCompi
lationResults=[0]), areFileChangesKnown=false, modifiedFiles=null, deletedFiles=null, workingDir=C:\balage\git\rlog_legacy\_rlog\common-scripting\build\kotlin\compileKotlin, customCacheVersio
nFileName='gradle-format-version.txt', customCacheVersion=4, multiModuleICSettings=MultiModuleICSettings(buildHistoryFile=C:\balage\git\rlog_legacy\_rlog\common-scripting\build\kotlin\compile
Kotlin\build-history.bin, useModuleDetection=false), usePreciseJavaTracking=truelocalStateDirs=[C:\balage\git\rlog_legacy\_rlog\common-scripting\build\classes\kotlin\main])


> Task :common-scripting:compileJava NO-SOURCE
Skipping task ':common-scripting:compileJava' as it has no source files and no previous output files.

> Task :common-scripting:processResources
Task ':common-scripting:processResources' is not up-to-date because:
  Output property 'destinationDir' file C:\balage\git\rlog_legacy\_rlog\common-scripting\build\resources\main has been removed.
  Output property 'destinationDir' file C:\balage\git\rlog_legacy\_rlog\common-scripting\build\resources\main\META-INF has been removed.
  Output property 'destinationDir' file C:\balage\git\rlog_legacy\_rlog\common-scripting\build\resources\main\META-INF\services has been removed.

> Task :common-scripting:classes
Skipping task ':common-scripting:classes' as it has no actions.

> Task :common-scripting:compileTestKotlin
Task ':common-scripting:compileTestKotlin' is not up-to-date because:
  Output property 'destinationDir' file C:\balage\git\rlog_legacy\_rlog\common-scripting\build\classes\kotlin\test has been removed.
  Output property 'destinationDir' file C:\balage\git\rlog_legacy\_rlog\common-scripting\build\classes\kotlin\test\META-INF has been removed.
  Output property 'destinationDir' file C:\balage\git\rlog_legacy\_rlog\common-scripting\build\classes\kotlin\test\META-INF\common-scripting.kotlin_module has been removed.
All input files are considered out-of-date for incremental task ':common-scripting:compileTestKotlin'.
Using Kotlin incremental compilation
Options for KOTLIN DAEMON: IncrementalCompilationOptions(super=CompilationOptions(compilerMode=INCREMENTAL_COMPILER, targetPlatform=JVM, reportCategories=[0], reportSeverity=2, requestedCompi
lationResults=[0]), areFileChangesKnown=false, modifiedFiles=null, deletedFiles=null, workingDir=C:\balage\git\rlog_legacy\_rlog\common-scripting\build\kotlin\compileTestKotlin, customCacheVe
rsionFileName='gradle-format-version.txt', customCacheVersion=4, multiModuleICSettings=MultiModuleICSettings(buildHistoryFile=C:\balage\git\rlog_legacy\_rlog\common-scripting\build\kotlin\com
pileTestKotlin\build-history.bin, useModuleDetection=false), usePreciseJavaTracking=truelocalStateDirs=[C:\balage\git\rlog_legacy\_rlog\common-scripting\build\classes\kotlin\test])

> Task :common-scripting:compileTestJava NO-SOURCE
Skipping task ':common-scripting:compileTestJava' as it has no source files and no previous output files.

> Task :common-scripting:processTestResources
Task ':common-scripting:processTestResources' is not up-to-date because:
  Output property 'destinationDir' file C:\balage\git\rlog_legacy\_rlog\common-scripting\build\resources\test has been removed.
  Output property 'destinationDir' file C:\balage\git\rlog_legacy\_rlog\common-scripting\build\resources\test\empty.txt has been removed.

> Task :common-scripting:testClasses
Skipping task ':common-scripting:testClasses' as it has no actions.

> Task :common-scripting:test
Task ':common-scripting:test' is not up-to-date because:
  Output property 'binResultsDir' file C:\balage\git\rlog_legacy\_rlog\common-scripting\build\test-results\test\binary has been removed.
  Output property 'binResultsDir' file C:\balage\git\rlog_legacy\_rlog\common-scripting\build\test-results\test\binary\output.bin has been removed.
  Output property 'binResultsDir' file C:\balage\git\rlog_legacy\_rlog\common-scripting\build\test-results\test\binary\output.bin.idx has been removed.
Finished generating test XML results (0.0 secs) into: C:\balage\git\rlog_legacy\_rlog\common-scripting\build\test-results\test
Generating HTML test report...
Finished generating test html results (0.009 secs) into: C:\balage\git\rlog_legacy\_rlog\common-scripting\build\reports\tests\test

BUILD SUCCESSFUL in 4s
12 actionable tasks: 6 executed, 6 up-to-date

它运行,甚至执行测试任务,但没有执行任何测试。我检查了IDEA中的源目录配置,其中包含测试路径,因此IDEA检测到它们。

出了什么问题?

当我尝试从 IDEA 执行测试时,出现以下错误:

> Task :common-scripting:test FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':common-scripting:test'.
> No tests found for given includes: [scripting.ValueTest](filter.includeTestsMatching)
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 1s
12 actionable tasks: 2 executed, 10 up-to-date
No tests found for given includes: [scripting.ValueTest](filter.includeTestsMatching)
17:09:04: Tasks execution finished ':common-scripting:cleanTest :common-scripting:test --tests "scripting.ValueTest"'.

最佳答案

你还没告诉the test task使用 TestNG:

tasks.getByName<Test>("test") {
    useTestNG()
}

关于Gradle (Kotlin DSL) 测试未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53323569/

相关文章:

gradle - 为Web应用程序定制工作目录运行gradle运行任务/项目结构

kotlin - 使用自定义插件时 Gradle 提供的 Null 属性

google-app-engine - 如何在不构建平面文件存储库的情况下将Google App Engine依赖项添加到gradle构建中?

kotlin - 为什么在 build.gradle.kts 中不能使用 `const val`

gradle - Kotlin 和 Gradle - 从 stdio 读取

gradle - Build刚开始要求一个archivebasename?

gradle - 使用Kotlin DSL在Gradle构建脚本中配置swagger

java - Gradle 公司母公司

android - Android Studio 中的 Gradle 错误 : Plugin with id 'com.android.library' not found

kotlin - 尝试在 gradle kotlindsl 中包含 swagger-codegen