junit测试应该使用main/resources

MrL*_*ang 18 junit unit-testing maven

我有maven和JUnit测试的问题.

我在src/main/resources中有一些文件,在运行junit测试时,我想要这些文件.只有一个具有稍微不同设置的测试特定文件应该否决相应的文件.所以我的想法是给这个测试文件提供与main-file相同的名称,并将它放在src/test/resources下的相同(相应)位置,如main-file.但现在我遇到了问题,我无法使用src/main/resources中的所有其他文件.

我认为他们的junit测试会将他们的默认值设置为目标/测试类/当由src/test/resources中的文件运行时,但它没有.只有src/test/resources中的文件而不是其他文件.

感谢任何想法,我如何解决这个问题.

这里是我尝试访问文件的示例

"

@BeforeClass
public static void globalSetUp() throws NamingException, SQLException {
    System.setProperty("solr.solr.home", "/solr/");

    cores = new CoreContainer(
            "/home/foo/workspace/reporting/target/test-classes/solr");
    cores.load();
    server = new EmbeddedSolrServer(cores, "reporting");

    loadDriver();
    connection = createAndConnectToDB();
    createDBSchema();

}
Run Code Online (Sandbox Code Playgroud)

"

MrL*_*ang 24

问题出在pom.xml中./ main/resources不是testResource.

这是解决我的问题的片段:

<build>
    <testResources>
      <testResource>
        <directory>${project.basedir}/src/test/resources</directory>
      </testResource>
      <testResource>
        <directory>${project.basedir}/src/main/resources</directory>
      </testResource>
    </testResources>
</build>
Run Code Online (Sandbox Code Playgroud)


Joh*_*n B 7

实际上两者都有/可用.src/main/resources和src/test/resources中的文件.但是,从类路径加载文件时,src/test/resources中的任何文件都优先于src/main/resources中的文件.

很难完全回答你的问题,因为你没有提供很多细节(你使用的是ContextConfiguration吗?如果不是你是如何加载文件的)但是我建议你使用一个不同的名称并在一个文件中明确加载测试需要它.

您也可以使用相同的名称,但是所有其他测试都需要显式使用src/main/resources路径来加载默认文件.