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

时间:2014-09-17 14:07:55

标签: gradle testng

我有一个简单的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:类UP-TO-DATE   :buildSrc:jar UP-TO-DATE:buildSrc:汇编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 个答案:

答案 0 :(得分:3)

听起来你的插件的类位于buildSrc下。如果是这种情况,您必须在build.gradle下的buildSrc文件中声明对TestNG的依赖性。内容如下:

repositories {
    mavenCentral()
}

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

要将TestNG用作测试框架,您必须重新配置Java插件提供的默认test任务,如Mark的回答所述。

答案 1 :(得分:1)

默认测试框架是JUnit。您必须明确enable TestNG support

test {
    useTestNG()
}