为什么我无法在travis或Circle CI环境上获得测试资源?

时间:2018-10-13 18:47:36

标签: java junit maven-3 travis-ci circleci

尝试在远程CI环境中运行项目的junit测试时,我遇到了一个非常烦人的问题。

在使用Java 1.8.0_181和maven 3.5.4的本地计算机中,我没有任何问题。

我曾经使用以下两种方法来获取测试资源:

        String expected = Utils.readStream(new FileInputStream(
            "src/test/resources/testdata/fragment-subdir-absolute-path.txt"));

使用此方法我找不到文件:

  

java.io.FileNotFoundException:fragment-subdir-absolute-path.txt(否   这样的文件或目录)

并以此:

        String expected = Utils.readStream(new FileInputStream(getClass()
            .getResource("/testdata/fragment-subdir-absolute-path.txt")
            .getPath()));

在这种情况下,我得到了NPE:

  

[错误] testFragmentFragmentHost经过的时间:0.03 s <<<错误!   java.lang.NullPointerException       在org.osgi.service.indexer.impl.IndexerUnitTest.assertFragmentMatch(IndexerUnitTest.java:58)       在org.osgi.service.indexer.impl.IndexerUnitTest.assertFragmentMatch(IndexerUnitTest.java:71)       在org.osgi.service.indexer.impl.IndexerUnitTest.testFragmentFragmentHost(IndexerUnitTest.java:205)

但是任何人都在远程CI内部进行工作。找不到文件。

1 个答案:

答案 0 :(得分:0)

令人尴尬的是,经过许多小时,我发现了问题所在...:)

罪魁祸首是复制的.gitignore文件,其中包含以下内容:

# Package Files #
 target
 *.jar
 *.txt

Eclipse IDE在未提交的文件上添加了一个小的询问图标,在已提交的文件上添加了一个小的repo图标,只是从被忽略的文件中删除了该图标。 我只是不注意那些被忽略的东西。

因此,我将该文件更改为:

# Package Files #
target/*.jar
target/*.txt 

神秘的单元测试错误消失了。

感谢所有的时间...