Я создаю TemporaryFolder
с использованием аннотации @Rule
в JUnit 4.7. Я попытался создать новую папку, которая является дочерней временной папкой, используя tempFolder.newFolder("someFolder")
в методе @Before
(настройка) моего теста. Кажется, что временная папка инициализируется после запуска метода установки, то есть я не могу использовать временную папку в методе настройки. Это правильное (и предсказуемое) поведение?JUnit Rule TemporaryFolder
ответ
Это проблема в Junit 4.7. Если вы обновите новый Junit (например, 4.8.1), все @Rule будут запущены при вводе метода @Before: s. Связанный отчет об ошибке состоит в следующем: https://github.com/junit-team/junit4/issues/79
Это тоже работает. EDIT, если в методе @Before он похож на вызов myfolder.create(). И это, вероятно, плохая практика, так как javadoc говорит, что нельзя называть TemporaryFolder.create(). 2nd Edit Похоже, вам нужно вызвать метод для создания временных каталогов, если вы не хотите их в методах @Test. Также убедитесь, что вы закрываете все файлы, которые вы открываете в каталоге temp, или они не будут автоматически удалены.
<imports excluded>
public class MyTest {
@Rule
public TemporaryFolder myfolder = new TemporaryFolder();
private File otherFolder;
private File normalFolder;
private File file;
public void createDirs() throws Exception {
File tempFolder = myfolder.newFolder("folder");
File normalFolder = new File(tempFolder, "normal");
normalFolder.mkdir();
File file = new File(normalFolder, "file.txt");
PrintWriter out = new PrintWriter(file);
out.println("hello world");
out.flush();
out.close();
}
@Test
public void testSomething() {
createDirs();
....
}
}
Хотя это создает новую папку, tempFolder фактически не находится в временном расположении (он находится в вашем рабочем каталоге), потому что myFolder не был установлен во временное местоположение. Он также не будет очищен. –
Это оставляет каталоги в каталоге $ TEMP или% TEMP%, поэтому все еще ищет реальный ответ. –
- 1. Использование JUnit @Rule с ScalaTest (например, TemporaryFolder)
- 2. Почему JUnit TemporaryFolder не удаляется?
- 3. JUnit TemporaryFolder не создает папку
- 4. Junit @Rule и @ClassRule
- 5. JUnit: Когда я объявляю объект TemporaryFolder?
- 6. Правила JUnit TemporaryFolder - ошибка на бамбуке
- 7. Как работает Junit @Rule?
- 8. Что делает @Rule?
- 9. Junit External Resource @Rule Order
- 10. Junit TestRule аннотирования поля против методов
- 11. Использование JUnit @Rule в JUnit бегуна в Eclipse
- 12. Нанести JUnit Выборочная @Rule конкретного метода испытаний
- 13. Объединение @ClassRule и @Rule в JUnit 4.11
- 14. Параметр JUnit в @Rule @Before и @After
- 15. JUnit Пользовательские правила
- 16. Котлин JUnit Правила
- 17. Как совместить @Rule и @ClassRule в JUnit 4,12
- 18. @Rule аннотации не работают при использовании TestSuite в JUnit
- 19. Параметрированное тестирование с помощью Mockito с помощью JUnit @Rule?
- 20. JUnit: @ Метод переопределенного применения правил Rule, не выполненный под тестом
- 21. Как применить JUnit @Rule для всех тестовых примеров в наборе
- 22. Selenium + junit - Conflict with @Rule и метод @After
- 23. Использование JUnit 4 в таймаута @Rule с AbstractTransactionalJUnit4SpringContextTests Спринга
- 24. Как использовать @Rule в Selenium JUnit провалить тест
- 25. Какова логика объявления и присвоения @Rule (JUnit) в классе Groovy
- 26. Как обеспечить, чтобы JUnit @Before сопровождал @After
- 27. Версия JUnit отличается от времени выполнения и времени компиляции?
- 28. rule overriding in ilog jrules rule studio
- 29. «папка не была создана» ошибка при использовании Junit временной папки в TestClass
- 30. Создайте временный каталог для теста Junit в статическом методе для теории
спасибо. больные должны обновиться. –
Я бы не стал даже с JUnit 4.8.2, что в Windows 7 правило TemporaryFolder работает некорректно. Похоже, это вопрос с разрешениями. – exception
ссылка не работает; рабочий: https://github.com/junit-team/junit4/issues/79 – jwd