草庐IT

java - 在测试类中使用 JUnit 临时文件夹时出现 "folder has not yet been created"错误

我收到错误“临时文件夹尚未创建”,该错误来自TemporaryFolder.getRoot()方法抛出的IllegalStateException。看起来它没有初始化,但我的研究表明,当临时文件夹在setUp()方法中初始化时,通常会出现这种情况。但是在我看来,像我一样将它与@Rule一起使用应该可行。有什么想法吗?测试类publicclassFileReaderTestextendsTestCase{@RulepublicTemporaryFolderfolder=newTemporaryFolder();publicFileReaderTest(StringtestName){su

java - 是否可以在 JUnit 4 中排除多个类别?

我想做这样的事情:@RunWith(Categories.class)@Categories.IncludeCategory(Small.class)@Categories.ExcludeCategory({Manual.class,NonFunctional.class})@Suite.SuiteClasses(AllTests.class)publicclassSmallTests{}但是ExcludeCategories只接受一个类,而不是一组类。 最佳答案 这将在JUnit4.12版本中得到支持,请参阅https://git

java - 在 Junit 中使用类别时如何使用自定义运行程序?

我有一堆JUnit测试扩展了我的名为BaseTest的基本测试类,后者又扩展了Assert。我的一些测试有一个@Category(SlowTests.class)注释。我的BaseTest类使用以下注释@RunWith(MyJUnitRunner.class)进行注释。我已经设置了一个预期仅运行SlowTests的Gradle任务。这是我的Gradle任务:taskintegrationTests(type:Test){minHeapSize="768m"maxHeapSize="1024m"testLogging{events"passed","skipped","failed"ou

java - 如何打开包并仅要求依赖于测试范围模块以进行 JUnit 测试

我正在使用类路径将一个jar项目从Java10迁移到使用Java9拼图模块的Java11。该项目有JUnit5测试。测试依赖项由Maven在测试范围内提供。模块被其他项目使用时,如何让所有包都打开测试但不打开?jar项目只是为其他项目(因此不需要主类)提供一些类(如实用项目)。该项目在/src/main/java/a/b/c/中获得了5个包。使用这个jar的项目应该可以访问其中的2个。其他3个仅供内部使用(由可访问的使用)。测试位于/src/test/java/a/b/c/。这些测试具有在测试范围内提供的依赖项(JUnit、mockito、junt-params),因为测试与使用此ja

java - 测试在 JUnit 4 而不是 JUnit 5 下运行——编译干净,但执行 0 个测试

任何人都可以在几分钟内轻松重现此问题。基本Mavenquickstart项目借助IntelliJ2018.3和Maven3.6.0,我使用Maven原型(prototype)创建了一个全新的项目maven-archetype-quickstart1.4版。Java11在新项目的POM文件中,我将maven.compiler.source和maven.compiler.target的属性从1.7更改为11,适用于Java11.0.2我目前正在使用,Zulu来自AzulSystems.UTF-81111在IntelliJ的Maven面板上,我运行了clean和install生命周期事件。在

java - JUnit 之间的差异?

我在IntelliJ中创建了一个JavaMaven项目(多项式操作),我想创建一个JUnit。我发现有很多类型的JUnit,例如:ArquillanJUnit4ArquillanTestNG常规JUnitJUnit3JUnit4JUnit5史波克测试NG有人可以向我解释它们之间的区别和/或哪一个是最好用的吗?谢谢! 最佳答案 ArquillianJUnit对比JUnitArquillianJUnit测试是具有一些额外功能的JUnit测试。你的测试类应该包含@RunWith(Arquillian.class)。您可以通过@Inject

java - 在 JUnit 4 Java 中使用 @BeforeClass 和使用实例或静态变量有什么区别?

我是单元测试的新手。关于JUnit4中使用@Before注解的目的。我只是不知道使用它的意义:publicclassFoodTestCase{staticprivateFoodsandwich;@BeforeClasspublicstaticvoidinitialise(){sandwich=newSandwich();}}对比publicclassFoodTestCase{staticprivateFoodsandwich=newSandwich();}有什么区别? 最佳答案 在这种情况下可能没有必要,因为初始化非常简单。如果您有

java - 如何运行所有修改过的 JUnit 测试类?

我有一个IntelliJ项目,版本在git中。如何运行自上次提交后修改过的所有JUnit测试类? 最佳答案 Projecttoolwindow中有已更改文件预定义范围您可以使用它来查看所有vcs更改的文件。从那里选择所有JUnit类,并从上下文菜单中创建JUnit运行/调试配置,它将填充类模式以自动运行。 关于java-如何运行所有修改过的JUnit测试类?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.c

java - 如何在同一个 Gradle 构建中运行 JUnit5 和 JUnit4?

我阅读了有关Maven的答案,但我想知道如何在Gradle中完成此任务-ExecutingJUnit4andJUnit5testsinasamebuild.目前,我的Gradle构建只接受以下测试:导入org.junit.jupiter.api.Test;我的问题是我正在使用需要JUnit4才能运行的@RunWith但我想在JUnit5VintageEngine上执行它。如何构建才能同时运行JUnit4和JUnit5。谢谢。更新:现在有一个用于JUnit5的原生MockitoJunitJupiter-https://mvnrepository.com/artifact/org.mock

使用 JUnit 5.7 进行参数化测试:深入了解 @EnumSource

使用JUnit5.7进行参数化测试:深入了解@EnumSource        参数化测试允许开发人员使用一系列输入值高效地测试他们的代码。在JUnit测试领域,经验丰富的用户长期以来一直在努力解决实施这些测试的复杂问题。但随着JUnit5.7的发布,测试参数化进入了一个新时代,为开发人员提供了一流的支持和增强的功能。让我们深入探讨JUnit5.7为参数化测试带来的激动人心的可能性!JUnit5.7文档中的参数化示例让我们看看文档中的一些示例:@ParameterizedTest@ValueSource(strings={"racecar","radar","ablewasIereIsawe