当前位置: 首页 > 知识库问答 >
问题:

使用jenkins平台在maven项目中运行spock测试

邰棋
2023-03-14

我创建了maven项目,它由junit和spock测试组成。两个测试的代码。

public class AppTest 
{
    /**
     * Rigorous Test :-)
     */
    @Test
    public void shouldAnswerWithTrue()
    {
        assertTrue( true );
    }
}

class SpockTest extends Specification  {

    def "one plus one should equal two"() {
        expect:
        1 + 1 == 2
    }

}

在我的本地机器中,当我运行mvn测试时,它会欺骗两个测试类。我在git仓库上部署了项目,并为maven项目配置了jenkins。我推这个项目的存储库和执行作业,但是詹金斯只检测JUnit测试的AppTest类。我已经改变了pom.xml并添加了文件regadring到https://github.com/menonvarun/testInProgress-spock-client。我的项目结构。

文件组织的内容。spockframework。运行时。扩大伊格洛巴张力

org.imaginea.jenkins.testinprogress.spock.SpockTestInProgressExtension

波姆。xml

<repositories>
    <repository>
      <id>repo.jenkins-ci.org</id>
      <url>http://repo.jenkins-ci.org/public/</url>
    </repository>
  </repositories>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.spockframework</groupId>
      <artifactId>spock-core</artifactId>
      <version>1.0-groovy-2.4</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.codehaus.groovy</groupId>
      <artifactId>groovy-all</artifactId>
      <version>2.4.7</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.imaginea.jenkins.plugins</groupId>
      <artifactId>testInProgress-spock-client</artifactId>
      <version>0.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

我在jenkins平台上安装了testInProgress插件。之后,我将更改后的maven项目推送到存储库中,并再次为maven项目执行作业。还有一次jenkins没有检测到SpockTest类。有什么问题吗?

共有1个答案

车子平
2023-03-14

尝试将spock测试放在groovy文件夹下:

  • src
    • 测试
      • groovy
        • com.jenk.。
          • SpockTest.groovy

          然后添加gmavenplus-plugin(groovy编译器)和maven-surefire-plugin(测试运行程序)到pom.xml

              <pluginManagement>
                  <plugins>
                      <plugin>
                          <groupId>org.codehaus.gmavenplus</groupId>
                          <artifactId>gmavenplus-plugin</artifactId>
                          <version>1.6.2</version>
                      </plugin>
          
                      <plugin>
                          <groupId>org.apache.maven.plugins</groupId>
                          <artifactId>maven-surefire-plugin</artifactId>
                          <version>2.22.1</version>
                      </plugin>
                  </plugins>
              </pluginManagement>
          
              ...
          
              <plugins>
                  <plugin>
                      <groupId>org.codehaus.gmavenplus</groupId>
                      <artifactId>gmavenplus-plugin</artifactId>
                      <configuration>
                          <targetBytecode>1.8</targetBytecode>
                          <warningLevel>2</warningLevel>
                      </configuration>
                      <executions>
                          <execution>
                              <goals>
                                  <goal>compileTests</goal>
                              </goals>
                          </execution>
                      </executions>
                  </plugin>
          
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-surefire-plugin</artifactId>
                  </plugin>
              </plugins>
          

          为了在Jenkins上进行调试,以确保更好地触发预期的测试,以满足失败条件:

          def "one plus one should equal two"() {
              expect:
              1 + 1 == 3
          }
          

 类似资料:
  • 在以前的一个项目中,我使用Spock测试框架对Java代码进行单元测试。我发现这非常有效,所以我尝试将Spock测试添加到我当前的项目中,该项目使用Maven作为构建工具(前一个项目使用Gradle)。虽然我可以让Maven编译我的Spock测试(使用),但我无法让Maven运行这些测试。 我做了一个简单的例子来演示我在两个文件中的问题: null 当我执行(或)时,我希望运行单个单元测试并失败。

  • 我有3个maven项目。项目1,项目2 为此,我在项目2 pom.xml文件中添加了这个 我的pom。Project3的xml是- 在项目3中,我添加了testng。xml文件来运行测试。现在如果我运行这个测试。xml文件,那么我所有的测试用例都成功运行了。如果我尝试使用maven测试运行测试用例,那么它会失败。 我已经在下面的pom文件中包含了testng.xml文件,以便使用maven运行te

  • 我正在尝试用Maven/Intellij运行spock测试。但是maven和intellij都没有接受测试类。它肯定会拾取类,但不会在类中执行任何测试。 2)Surefire插件配置正确,因为它会拾取文件进行测试 3)target/test-classs文件夹中生成的测试类 我需要帮助我在这里错过了什么。

  • 我想我在插件中缺少了一些东西,可以让maven在maven lifecycle命令期间运行Spock test和TestNG。我想我错过了一些琐碎的事情。可以有人在这里给我一些关于我应该在pom中添加什么的指针,或者如果有人在github中有一个示例骨架项目,我可以看看。谢了。

  • 我正在使用Spock框架进行测试(1.0-groovy-2.4版本)。Junit提供了使用命令行(使用Maven)运行特定测试的选项: 问题:我怎样才能和斯波克做到这一点? 这个版本依赖于Junit 4.12,Junit文档中指出,只有Junit 4才支持此功能。x、 基本上,斯波克应该提出类似的建议。

  • 问题内容: 我在运行Ubuntu的本地计算机上设置Jenkins,将其指向我的jdk,然后进行maven,创建了一个作业来运行我的Selenium测试,并为它提供了项目中pom.xml的路径,但是当我尝试运行该作业时,它立即失败。控制台输出显示 在工作区中构建/ var / lib / jenkins / workspace / new job [new job] $ / usr / share