在eclipse for spring中运行单元测试时,将src / main / resources添加到classpath

时间:2012-01-11 14:26:48

标签: java eclipse spring maven

在eclipse中,我的maven项目有一个'src / main / resources /'文件夹和一个'src / test / resources'文件夹。两个目录的内容似乎都进入'Project / target / classes',而'src / test / resources'目录的内容进入'Project / target / test-classes'。

当我在测试时使用spring加载类路径资源时,似乎只有类路径中'test-classes'文件夹中的东西可用。这是有道理的,因为只有测试资源进入类路径进行测试。

但是我希望在运行单元测试时我的主要资源可用,但是在运行单元测试时找不到它们,因为它们不在类路径上。如何解决此问题?

2 个答案:

答案 0 :(得分:2)

您可以配置surefire插件(maven用于运行单元测试)以包含任何其他类,jar或资源目录。

http://maven.apache.org/plugins/maven-surefire-plugin/examples/configuring-classpath.html

答案 1 :(得分:-1)

使用TestNG测试包含MyBatis的项目时,在XML文件中可能找不到异常

org.apache.ibatis.binding.BindingException:无效的绑定语句(未找到):

  1. 假设与您的MyBatis对应的XML文件都放在src / main / resources / mapper下
  2. 编译后,target / classes文件夹将包含mapper文件夹
  3. target / test-classes文件夹中没有mapper文件夹!这样就报错了

解决方案 在pom.xml文件中,将测试的资源目录指向src / main / resources

    <build>
        <testResources>
            <!--测试的时候直接读取src/main/resources的资源文件-->
            <testResource>
              <directory>${project.basedir}/src/main/resources</directory>
            </testResource>
        </testResources>
    </build>

Chinese description 中文说明