首页 文章

@BeforeAll不在Eclipse中的SOME文件中工作

提问于
浏览
0

我想在Eclipse Oxygen 4.7.3a中从JUnit 4转换为5 . 我认为添加jupiter库就足够了:库,构建路径等等 . 但是@BeforeAll,@ AfterAll,@ BeforeEach和@AfterEach都没有被执行,但是@Test方法没有 - 但是当然它们会失败而没有正确的设置 .

有趣的是,我可以使用新的Junit 5 Jupiter向导创建一个文件,该测试文件可以正常工作 . 我将JUnit 5注释从新文件复制并粘贴到我现有的文件中,但仍然无法正常工作 . 我开始怀疑Eclipse是否在我不知道的幕后某处有一些配置信息 .

3 回答

  • 0

    好的,我发现了问题 . 在我的导入语句林中,我正在使用

    import org.junit.Test;

    代替

    import org.junit.jupiter.api.Test;

    这引发了JUnit 5亚军认为它正在使用JUnit 4文件 . 简单的解决方案,但很难找到,因为没有生成错误消息,文件仍然运行 . 由于“Organize Imports”添加了JUnit 4 Test类,而不是jupiter Test类,因此也变得更加神秘 .

    -Falsoon

  • 2

    如果要将单个测试类从JUnit 4转换为JUnit Jupiter,则可能是您之前在Eclipse中运行了测试类 .

    如果是这种情况,Eclipse已经为该测试类保存了一个运行配置,其中JUnit的版本设置为4 .

    要告诉Eclipse现在作为JUnit Jupiter测试类运行相同的测试类,您需要编辑该测试类的运行配置 . 从“运行”菜单中选择“运行配置...” . 然后将“Test runner”从“JUnit 4”更改为“JUnit 5.然后单击”Run“按钮 .

    仅供参考:Eclipse JUnit 5 documentation中也记录了这一点 . 搜索以"If you are using an Eclipse workspace where you were running"开头的注释 .

    希望这可以帮助!

  • 0

    尝试将其更改为 static . 除非使用 @TestInstance(Lifecycle.PER_CLASS) 注释测试类,否则 @BeforeAll 方法必须为 static .

相关问题