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

无法使用maven intellij运行spock测试

宁卓
2023-03-14

我正在尝试用Maven/Intellij运行spock测试。但是maven和intellij都没有接受测试类。它肯定会拾取类,但不会在类中执行任何测试。

class SpaceAccessorServiceTest extends Specification {
SpaceLookUpService spaceLookUpService = Mock()
SpaceAccessorService accessorService = new SpaceAccessorService();

def gsProxy = Mock(GigaSpace)

def setup() {
    spaceLookUpService.getSpace(_ as String) << gsProxy
}

def 'should call readmultiple function on gigaspace proxy to get all objects from space for typename'() {
    given 'environment name'
    String envName = 'Grid-A'
    String dataType = 'data'
    String criteria = 'some-criteria'

    when 'call space accessor service to get all objects from space for typename'
    accessorService.getAllObjectsFromSpaceForTypeName(envName, dataType, criteria)

    then 'readMultiple method is invoked on gigapsace proxy'
    1 * gsProxy.readMultiple(_ as SQLQuery)
}
}
     T E S T S
-------------------------------------------------------
Running com.ambuj.SpaceAccessorServiceTest
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.369 sec
There are no tests to run.

Results :
java.lang.Exception: No tests found matching Method should call readmultiple function on gigaspace proxy to get all objects from space for typename(com.ambuj.SpaceAccessorServiceTest) from org.junit.internal.requests.ClassRequest@5aaa6d82

at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:40)

2)Surefire插件配置正确,因为它会拾取文件进行测试

3)target/test-classs文件夹中生成的测试类

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.8.1</version>
            <configuration>
                <includes>
                    <include>**/*Test.class</include>
                    <include>**/*Spec.class</include>
                </includes>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>org.apache.maven.surefire</groupId>
                    <artifactId>surefire-junit4</artifactId>
                    <version>2.8.1</version>
                </dependency>
            </dependencies>
        </plugin>

我需要帮助我在这里错过了什么。

共有1个答案

洪安顺
2023-03-14

也许是太晚了,但我只是想强调@Steinar的评论也解决了我的问题。

作为第一次使用Spock的用户,我也犯了同样的错误,在Spec中没有标签given:when:then:。然后偶然发现了这个问题,找到了斯坦纳的评论。

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

  • 问题内容: 我有一个基于Gradle的Java项目,现在我想使用PowerMock模拟一个私有方法。问题是我无法使用PowerMockRunner,因为添加注释时总是会收到以下异常。 错误: 这是我的测试依赖项: 完全为空(初始化错误)时,测试本身也会失败: 任何想法可能有什么问题吗?使用PowerMock的其他测试运行正常(没有一个使用PowerMockRunner)。 问候和感谢您的任何帮助!

  • 我遇到了无法使用Maven运行JUnit5测试的问题。在IDE中运行它们工作正常,但使用“mvn测试”会产生以下输出: 这是我的测试课程: pom: 我做了一些研究,我认为这可能与混合JUnit4和JUnit5特性有关,这导致maven surefire插件无法运行测试。然而,我找不到那些剩余的JUnit4特性可能在哪里。我将感谢任何帮助。

  • Spock规范如下所示: 是一个测试记录列表,对于该列表的每个成员,方法将按顺序运行。我想要的是,列表的前k个成员运行一个线程,下面的k个成员在第二个线程中运行,等等...理论上,使用Executors框架和类(因为Spock依赖于JUnit),这可以相对容易地完成。 然而,问题是如何将更小的注入到具有方法的类中,因为Spock不允许构造函数,而JUnitCore需要类名(具有测试/规范的类),而

  • 我在看一个例子,从沃尔的春靴在行动书。它是一个用Groovy编写的简单web应用程序。该项目使用Spring CLI构建、运行和测试,不使用gradle构建文件,并使用grabs.groovy文件提供H2和Thymeleaf依赖项。有两个测试班。第一个是JUnit测试,第二个是Spock规范。JUnit测试文件是: 我不擅长编写Spock测试,所以我不确定问题是什么。

  • 我正在尝试使用Spock运行geb测试。我已经在groovy脚本中编写了所有内容,该脚本位于中,如下所示