9

私はここで奇妙な問題に直面しています...

いくつかのテストを実装するJUnitがあります。このクラスは次のようになります。

public class MyTest {

    @Rule
    public TemporaryFolder folder = new TemporaryFolder();

    @Test
    public void myTest1() throws IOException {
        String destinationPath = folder.newFile("destination1.txt").getPath();
        // Do things
    }

    @Test
    public void myTest2() throws IOException {
        String destinationPath = folder.newFile("destination2.txt").getPath();
        // Do things
    }

    @Test
    public void myTest3() throws IOException {
        String destinationPath = folder.newFile("destination.txt").getPath();
        // Do things
    }
}

このテストクラスは、以前の環境で機能していましたが、Continuumでも機能します。

ただし、Eclipseから起動する場合、テストのいずれも、一部、またはすべてが、次のIOExceptionようなものを任意にスローします。

java.io.IOException: The system cannot find the path specified
    at java.io.WinNTFileSystem.createFileExclusively(Native Method)
    at java.io.File.createNewFile(File.java:883)
    at org.junit.rules.TemporaryFolder.newFile(TemporaryFolder.java:53)
    at MyTest.myTest2(MyTest.java:50)

JUnit4.9またはJUnit4.10の実行でまったく同じ問題が発生します...

正しく機能するように修正するにはどうすればよいですか?

4

3 に答える 3

1

アンチウイルス保護を無効にしてみてください。

同じ問題が発生し、Kasperskyを無効にした後、すべてが正常に機能していました。

于 2012-12-20T15:27:43.753 に答える
0

見た目では、これはJUnitの問題よりもWindowsに関連する問題である可能性があります。どういうわけか、「制限付き権限ユーザー」としてログインしているときにフォルダ/ファイルを作成する権利を逃している可能性があります。

JUnitと同じように、yourslefの一時フォルダーを作成してみてください。

        File folder= File.createTempFile("junit", "");

上記のステートメントが同じエラーをスローする場合は、Windowsのユーザー権限を調査する必要があります。おそらく、「フルライツ」ユーザーでテストを実行してみてください。

于 2012-06-13T15:30:28.167 に答える
0

私の場合に役立つと思われるのは、ルートフォルダを明示的に作成することでした。folder.create()あなたの場合、あなたのコードのどこかに投げ込みます。

醜い、私は知っています。

于 2018-05-27T08:09:56.787 に答える