IntelliJ无法查找测试上下文

jen*_*gar 4 java junit intellij-idea

我在使用intelliJ运行单元测试时遇到问题.我已经浏览了其他论坛,人们有类似的问题,但到目前为止,我仍然无法让它工作.这是错误:

java.lang.IllegalStateException: Failed to load ApplicationContext
...
Caused by: java.io.FileNotFoundException: class path resource [com/d1/d2/service/ServiceTest-context.xml] cannot be opened because it does not exist
Run Code Online (Sandbox Code Playgroud)

在我的测试中,我有:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "ServiceTest-context.xml")
public class ServiceImplTest ....
Run Code Online (Sandbox Code Playgroud)

我已经明确证实该文件存在于由行引起的位置.我还读了一个检查输出目录的建议,我已经验证它也存在.还有什么比你更突出的吗?我可以使用ant从命令行运行测试,但我希望能够运行单个类而不是模块.

项目:

IntelliJ_project
    src
    test
        com
            d1
                d2
                    otherStuff
                    ...
                    ...
                    service
                        ServiceImplTest.java
                        ServiceTest-context.xml
Run Code Online (Sandbox Code Playgroud)

导出目录:

test-classes (output folder)
    com
        d1
            d2
                service
                    ServiceImplTest.class
Run Code Online (Sandbox Code Playgroud)

所以事实证明我在错误的目录中寻找输出.上下文文件不会使其到达输出位置.我怎么去那里?

Mic*_*bak 6

如果这是一个多模块项目,并且您的测试在运行时可以正常工作

mvn test
Run Code Online (Sandbox Code Playgroud)

但是IDEA无法找到配置文件,请尝试以下操作:

  1. 菜单:运行 - >编辑配置...
  2. 将"工作目录"更改为指向"Intellij_Project"文件夹(带斜杠).
  3. 在测试类中,将配置更改为:

    @ContextConfiguration("file:test/com/d1/d2/service/ServiceTest-context.xml")
    
    Run Code Online (Sandbox Code Playgroud)

这个配置对我有用(并且也被spring-mvc-showcase使用).


Eug*_*mov 4

尝试这个解决方案,它对我有用:

  1. 放入文件夹ServiceTest-context.xmlsrc/test/resources

  2. 将这些行添加到buildpom 的部分:

    <testResources>
      <testResource>
        <directory>src/test/resources</directory>
      </testResource>
    </testResources>
    
    Run Code Online (Sandbox Code Playgroud)
  3. 重新导入 Maven 项目并运行您的单独测试。