为什么JUnit使用不同的结果运行两次测试

数字化

当从Eclipse运行JUnit时(使用右键单击|以-在项目级别和单个测试级别运行相同的结果),我的测试运行两次。一次测试按预期运行(并仅用程序包名称标记),另一次出现虚假的空指针异常(并以完全合格的程序包名称标记)。我没有任何套件,并且运行结果不同,这意味着它与其他人两次运行测试似乎都不一样

我的测试文件(减去导入)为:

public class CommandHistoryTest extends TestCase {
    private CommandHistory commandHistory;

    @BeforeEach
    public void initEach() {
        commandHistory = new CommandHistory();
    }

    @Test
    @DisplayName("On creation, canUndo and canRedo should be false")
    public void testCreate() {
        Assertions.assertFalse(commandHistory.canUndo());
        Assertions.assertFalse(commandHistory.canRedo());
    }
}

就像我说的那样,这在JUnit传递中的一个上可以正常工作-直到我实现了相关的位commandHistory并在实现它们时都传递了它-还是失败了-但在另一个传递中,它给了我一个空指针异常Assertions.assertFalse(commandHistory.canUndo());

我可以接受这一点,因为我得到了一组有效的测试结果,但是在第二遍中看到所有这些危险信号使我感到难过。如何停止虚假测试?

编辑:我注意到在包资源管理器中测试显示为'> CommandHistoryTest.java'。我添加了另一个测试类,该类在软件包浏览器中不显示“>”符号,并且不会运行两次。“>”是什么意思?

再次编辑:不,我现在看到'>'是git集成的一部分,但是答案在下面。

马克·菲利普

JUnit运行测试两次:一次使用Vintage引擎,因为它是TestCase从JUnit 3扩展而来的;一次是使用Jupiter引擎,因为它包含了一个用注释的方法org.junit.jupiter.api.Test后者执行该@BeforeEach方法时,前者不执行只需删除extends TestCase,它将仅运行一次。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么“ gulp测试”会运行两次测试?

使用不同的参数运行两次 tumblr API 调用以返回不同的数据

测试一个方法是否使用不同的参数被调用两次

为什么TimerTask运行两次?

为什么脚本运行两次?

根据选择的使用情况,两次写入无缓冲通道会导致不同的结果。为什么?

结果随机时,运行rspec测试两次

使用不同的片段调用 add() 两次

使用不同的参数两次读取文件

使用不同的参数调用函数两次

为什么XCode两次启动应用程序以运行UI测试?

为什么我的蚂蚁测试用例总是运行两次?

Spring Batch:为什么单元测试两次运行该步骤?

对于使用ORDER BY的同一查询的两次运行,SQL能否返回不同的结果?

TensorFlow:为什么我在同一个地方运行两次这段代码没有更新任何参数,我得到了不同的结果?

为什么在data.table格式中运行代码说两次或三遍,对引用(:=)的赋值会给出不同的结果?

在我的 xunit 测试中,为什么这个运行一次的代码运行了两次?

为什么有些开发人员用不同的单位两次定义字体大小?

为什么用不同的参数两次打印一个函数会更改输出:python

如果使用不同的参数连续两次调用递归函数,则会出现错误的结果

如何使用不同的参数运行选定的junit测试

为什么测试中的辅助文件来源两次

为什么在机器学习中使用不同的数据集测试模型时结果不准确?

循环运行Junit测试,如果两次测试之间失败,则继续进行测试

为什么使用cin.get()函数的while循环输出两次结果?

为什么 Gulp 两次运行相同的任务?

为什么postrm在清除时运行两次?

为什么此python代码运行两次

为什么我的else语句两次运行代码