如何在运行某些特定单元测试时命中断点?

时间:2016-08-19 06:56:52

标签: java unit-testing intellij-idea junit

当我在项目中运行所有测试时,我正在尝试解决unit tests其中一个 的问题。

因此,只有在执行失败的测试时,我才想进入一些公共代码。我试图找出如何在Intellij IDEA中实现它,因为有一个条件断点的功能,但是现在我失败了,因为我不明白我怎么能写这种类型的条件加上似乎其他可能性真的允许这个。

有可能吗?

4 个答案:

答案 0 :(得分:5)

在失败的测试用例中放置一个断点(在图像的第28行)。在公共代码中放置另一个断点(在图像中为其第42行),并将其作为禁用的条件,直到测试用例中的断点被命中。要获取此窗口,请右键单击断点(有时您必须禁用然后重新启用挂起复选框)。

希望它有所帮助!

conditional break point

答案 1 :(得分:2)

我不知道IDEA功能允许您这样做,但是您可以采取一些手动步骤来执行此类调试:

  1. 将断点添加到失败的单元测试的第一行。
  2. 当此断点发生命中时,在您感兴趣的公共类中添加另一个断点。
  3. 或者,您可以通过对单元测试代码进行一些小修改,以更加自动化,可重复的方式执行此操作。

    1. 向Unit测试类添加一个公共静态布尔字段,默认情况下设置为false。
    2. 在失败测试的第一行中将此设置为true
    3. 在测试条件中使用此字段。例如如果您的单元测试是" ThingTest"和你的领域" footest" - 你的条件将是" ThingTest.footest == true"
    4. 在失败测试结束时将其设置为false(如果您希望后续测试正常运行)

答案 2 :(得分:1)

如何声明一个布尔值,默认情况下将其设置为false,并且在测试失败时仅将其设置为true。

然后你可以在你的断点中设置一个条件,只在布尔值设置为true时才能观察。

在IntelliJ中,按正常方式添加断点,然后右键单击它,然后选择“查看断点”。另一个窗口打开,你可以输入你的条件。 希望这会有所帮助。

答案 3 :(得分:0)

您有两种选择:

  • 如果公共代码中存在某种状态(值),您可以像使用条件断点那样使用条件断点,这是您要检查的测试所特有的。例如,特定的字符串参数。
  • 您可以在要检查的测试中添加额外断点 在从此测试调用公共代码之前。一旦这个断点 击中你激活原始断点。你可以这样做 手动或使用选项“禁用,直到选定的断点为 在原始断点的断点对话框中点击“ 在组合框中选择额外断点。如果你使用 “自动” - 你甚至可以取消选中额外的“暂停” 断点。这样,它只会暂停/暂停原始断点。