gpt4 book ai didi

java - 为什么由于假设失败而跳过的 junit 测试未报告为已跳过?

转载 作者:搜寻专家 更新时间:2023-10-31 19:58:37 25 4
gpt4 key购买 nike

我使用 junit 假设来决定是否运行测试。
假设失败的测试是 ignored/skipped由 junit 框架。

我想知道为什么跳过的测试没有报告为“跳过”?

请看例子:

import static org.junit.Assert.fail;
import org.junit.Assume;
import org.junit.Test;

public class AssumptionTest {

@Test
public void skipAssumptionFailureTest() {
Assume.assumeTrue("foo".equals("bar"));
fail("This should not be reached!");
}
}

在 Maven 项目中运行此测试会导致:

Running AssumptionTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.015 sec

我希望将此测试报告为“已跳过”。是否有机会实现这一目标?

(junit 4.8.1;maven 2.2.1;java 1.6.0_21)

最佳答案

虽然以前的答案本身就很好,但我想解决“为什么”这个问题。

问题源于测试失败/忽略的计数方式。添加假设后,通常的计数会有点扭曲(假设可以在运行的中途忽略测试)。

工具运行器也有问题,导致报告困惑。参见 here for Surefire dev conversation with JUnit people , 和 here for related Eclipse bug .

现在这在 Maven 中不是问题,在较新的 Eclipse 中也不应该出现。我使用基于 eclipse.buildId = 2.9.2.201205071000-RELEASE 的 STS,但我仍然遇到这种行为。

编辑:引用类型链接无效。

关于java - 为什么由于假设失败而跳过的 junit 测试未报告为已跳过?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3814974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com