我用JUnit Rule TemporaryFolder写了一些UT。 在我的UT中,我模拟一个服务来返回这个目录:
@Rule
public TemporaryFolder folder = new TemporaryFolder();
...
@Test
public void myTest(){
when(myMock.doSomething()).thenReturn(folder.getRoot());
...
然后在服务中,文件夹的使用方式如下:
IOFileFilter filtreBasique = new NameFileFilter(tagRCPName + ".xml", IOCase.INSENSITIVE);
FileUtils.listFiles(folder, filtreBasique, TrueFileFilter.TRUE);
当我在计算机上运行我的UT时,一切正常,但是当我尝试在Bamboo上运行它时,我有这样的错误:
java.lang.IllegalArgumentException: Parameter 'directory' is not a directory
at org.apache.commons.io.FileUtils.listFiles(FileUtils.java:358)
我无法弄清楚为什么......
答案 0 :(得分:0)
最后我发现了我的错误...... 它与Rule JUnit无关......
当我尝试在我的目录中列出文件时,我有一个像[TEMP_REPO] \ test \ test和硬编写的分隔符这样的结构。所以我用System.getProperty("file.separator")
替换它们,一切都很顺利。
希望这可以帮助某人......