gpt4 book ai didi

java - Surefire JUnit 测试不会在测试 xml 文件中记录失败的假设

转载 作者:行者123 更新时间:2023-11-29 08:52:30 25 4
gpt4 key购买 nike

我正在使用

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.16</version>
</plugin>

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>

测试我的项目。

我有一个很简单的测试方法

@Test
public void test() throws IOException {
Assume.assumeTrue("I am broken, so I am ignored", false);
// some tests
}

当我用maven构建项目时,我在surefire xml文件中得到了以下代码片段

<testcase name="test" classname="com.stackoverflower.experiment.Test" time="0">
<skipped/>
</testcase>

我不认为这是 surefire 的正确行为,因为假设失败被视为与忽略相同,它应该遵循与忽略相同的日志记录标准。 This JIRA明确说明应该记录原因。

你怎么看?是否有解决方法将该消息放入 xml 文件?

谢谢

更新 1

我不能使用@Ignore 的原因是因为我不想将测试硬编码为忽略。我希望基于一些在编码时无法确定的先决条件来跳过它。

最佳答案

Assume 方法主要用于 JUnit TheoriesDataPoint 的组合对于给定的 Theory 无效时。你应该使用 Assert类,而不是 Assume。这是您的示例测试,已重新编写以使用正确的类:

@Test
public void test() throws IOException {
Assert.assertTrue("I am broken", false);
// some tests
}

Javadoc for Assume 中所述,它旨在忽略错误假设。

关于java - Surefire JUnit 测试不会在测试 xml 文件中记录失败的假设,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22024701/

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