Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过maven failsafe插件运行spring启动测试时发生IllegalStateException。_Java_Maven_Intellij Idea_Spring Boot_Maven Failsafe Plugin - Fatal编程技术网

Java 通过maven failsafe插件运行spring启动测试时发生IllegalStateException。

Java 通过maven failsafe插件运行spring启动测试时发生IllegalStateException。,java,maven,intellij-idea,spring-boot,maven-failsafe-plugin,Java,Maven,Intellij Idea,Spring Boot,Maven Failsafe Plugin,我已经在IntelliJ中创建了一个新的spring引导项目,并且我希望将使用spring引导上下文的测试与简单的单元测试分开,所以我添加了maven failsafe插件。我的配置如下所示: <!--RUNNING UNIT TESTS--> <plugin> <artifactId>maven-surefire-plugin</artifactId> <ver

我已经在IntelliJ中创建了一个新的spring引导项目,并且我希望将使用spring引导上下文的测试与简单的单元测试分开,所以我添加了maven failsafe插件。我的配置如下所示:

        <!--RUNNING UNIT TESTS-->
        <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.20</version>
            <configuration>
                <excludes>
                    <exclude>**/*IT.java</exclude>
                </excludes>
            </configuration>
        </plugin>

        <!--RUNNING INTEGRATION TESTS-->
        <plugin>
            <artifactId>maven-failsafe-plugin</artifactId>
            <version>2.20</version>
            <configuration>
                <includes>
                    <include>**/*IT.java</include>
                </includes>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

    </plugins>
</build>
@RunWith(SpringRunner.class)
@SpringBootTest
public class ErpegApplicationTestIT {

    @Test
    public void contextLoads() {
    }

}
问题是,当我在InttelliJ上运行这个测试时,一切都正常工作。但在我运行
mvn验证后
我得到:

[ERROR] initializationError(com.tbawor.ErpegApplicationTestIT)  Time elapsed: 0.005 s  <<< ERROR!
java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @S
pringBootTest(classes=...) with your test

[ERROR]initializationError(com.tbawor.ErpegApplicationTestIT)经过的时间:0.005秒如果有人遇到这个问题,我已经找到了解决方案。只需修改pom.xml即可:

          <plugin>
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-failsafe-plugin</artifactId>
             <version>2.20</version>
             <configuration>
                 <additionalClasspathElements>
                     <additionalClasspathElement>${basedir}/target/classes</additionalClasspathElement>
                 </additionalClasspathElements>
             </configuration>
             <executions>
                 <execution>
                     <goals>
                         <goal>integration-test</goal>
                         <goal>verify</goal>
                     </goals>
                 </execution>
             </executions>
         </plugin>

org.apache.maven.plugins
maven故障保护插件
2.20
${basedir}/target/classes
集成测试
验证

首先,您不需要和的配置,因为这些是默认设置(约定优先于配置)。您是否遵循了错误消息中的建议?最好解释一下更改。例如,有什么特别的变化?谢谢Spring启动应用程序和集成测试也有类似的问题,错误是java.lang.ClassNotFoundException。通过添加
解决了我的问题。很高兴听到:)