- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
例如,我们有 @RepeatedTest
:
import org.junit.jupiter.api.RepeatedTest;
import static org.junit.jupiter.api.Assertions.assertEquals;
class SomeClassTest {
@RepeatedTest(3)
public void doSmth() {
String str = "hello";
SomeClass someClass = new SomeClass();
assertEquals(str.substring(0, 2), someClass.doSmth(str));
}
}
它工作正常,直到我们尝试从 Test Suite 运行它。像这样:
import org.junit.platform.runner.JUnitPlatform;
import org.junit.platform.suite.api.SelectClasses;
import org.junit.runner.RunWith;
@RunWith(JUnitPlatform.class)
@SelectClasses({
SomeClassTest.class
})
public class TestSuite {
}
SomeClass
public class SomeClass {
public String doSmth(String str){
return str.length() > 3? str.substring(0,2) : str;
}
}
控制台中没有错误。测试根本就不会开始。 为什么?
<小时/>更新
我在 SomeClass
中启用了日志记录。
public class SomeClass {
private final static Logger log = LoggerFactory.getLogger(SomeClass.class.getName());
public String doSmth(String str){
log.info("in doSmth");
return str.length() > 3? str.substring(0,2) : str;
}
}
现在我在日志文件中看到 @RepeatedTest
从测试套件中调用了 3 次。但之后的测试会怎样呢?为什么会掉下来?
谁能告诉我是否有可能记录 JUnit 的工作?
最佳答案
您可以使用 SomeClassTest
类中的以下 stub 记录重复的测试执行详细信息:-
private Logger log = Logger.getLogger(SomeTest.class.getName());
@BeforeEach
void beforeEach(TestInfo testInfo, RepetitionInfo repetitionInfo) {
log.info(String.format("About to execute repetition %d of %d for %s",
repetitionInfo.getCurrentRepetition(),
repetitionInfo.getTotalRepetitions(),
testInfo.getTestMethod().get().getName()));
}
此外,按照当前的逻辑,我看不出测试会失败
的原因,否则您可能会面临断言错误,而在失败情况下,您必须最终遇到该错误。
关于java - @RepeatedTest 未启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46958621/
例如,我们有 @RepeatedTest : import org.junit.jupiter.api.RepeatedTest; import static org.junit.jupiter.ap
我读过 following article我知道我可以通过添加以下注释来要求 junit 多次执行测试: @RepeatedTest(value = 3, name = RepeatedTest.LO
我有一个测试用例,其中我以枚举的形式提供了测试数据。喜欢 enum TestTransactions { TestTransactions(Transaction T1, Transactio
目前,我正在(尝试)将现有的 Junit4 项目迁移到 Junit5。 我被困在必须同时使用@RepeatedTest 和@ParameterizedTest 的地方。尝试这样做会引发默认异常 - N
我在使用 JUnit 5 时遇到以下问题。我想运行 15 次测试,所以我使用了注释 @RepeatedTest(15) 并且它起作用了。但问题是,在每次运行中,它都会调用 @BeforeEach 方法
我是一名优秀的程序员,十分优秀!