如何使用Gradle构建本身来对Gradle插件进行单元测试

3

我有一个简单的Gradle插件,我想试用一下,但我不确定如何“请求”Gradle运行我的测试。

这是我想要修改的代码块(在我的Gradle构建文件顶部):

buildscript {
  dependencies {
     classpath('org.testng.testng:6.8.8')
  }
}

当我在命令行中运行“gradle”时,我的输出结果如下:
:buildSrc:compileJava UP-TO-DATE :buildSrc:compileGroovy UP-TO-DATE :buildSrc:processResources UP-TO-DATE :buildSrc:classes UP-TO-DATE :buildSrc:jar UP-TO-DATE :buildSrc:assemble UP-TO-DATE :buildSrc:compileTestJava UP-TO-DATE :buildSrc:compileTestGroovy UP-TO-DATE :buildSrc:processTestResources UP-TO-DATE :buildSrc:testClasses UP-TO-DATE :buildSrc:test UP-TO-DATE :buildSrc:check UP-TO-DATE :buildSrc:build UP-TO-DATE :help 这让我认为我正在运行目录中的“测试”(结构如下所示)。
.
├── main
│   └── groovy
│       └── foobar
│           └── gradle
│               ├── cat
│               │   ├── CatFile.groovy
│               └── TaskHelper.groovy
└── test
    └── groovy
        └── foobar
            └── gradle
                └── cat
                    └── CatFileTest.groovy

然而没有任何东西在运行(我期望看到我的CatFileTest失败)- 这是我的测试文件

  package foobar.gradle.cat
  import org.testng.annotations.Test

  class CatFileTest {
      @Test     
      void shouldBlowUp() {
          assert 1 == 2
      }
  }
2个回答

3
听起来你的插件类位于buildSrc下。如果是这种情况,你需要在buildSrc下的build.gradle文件中声明对TestNG的依赖关系。具体内容如下:
repositories {
    mavenCentral()
}

dependencies {
    testCompile 'org.testng.testng:6.8.8'
}

若要使用TestNG作为测试框架,您需要按照Mark的回答所述重新配置Java插件提供的默认test任务。


1

默认的测试框架是JUnit。您需要显式启用TestNG支持

test {
    useTestNG()
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接