是否可以设置测试可以运行的最长时间?就像:
@Test(timeout=1000)
public void testSomething() {}
在 jUnit 中?
是否可以设置测试可以运行的最长时间?就像:
@Test(timeout=1000)
public void testSomething() {}
在 jUnit 中?
是的,您现在可以将这行代码放在导入语句上方以确定您的测试超时时间。
@Timeout(const Duration(seconds: 45))
尝试在main()
您的测试中添加以下行
void main(List<String> args) {
useHtmlEnhancedConfiguration(); // (or some other configuration setting)
unittestConfiguration.timeout = new Duration(seconds: 3); // <<== add this line
test(() {
// do some tests
});
}
setUp()
您可以使用andtearDown()
和 a轻松设置时间守卫Timer
library x;
import 'dart:async';
import 'package:unittest/unittest.dart';
void main(List<String> args) {
group("some group", () {
Timer timeout;
setUp(() {
// fail the test after Duration
timeout = new Timer(new Duration(seconds: 1), () => fail("timed out"));
});
tearDown(() {
// if the test already ended, cancel the timeout
timeout.cancel();
});
test("some very slow test", () {
var callback = expectAsync0((){});
new Timer(new Duration(milliseconds: 1500), () {
expect(true, equals(true));
callback();
});
});
test("another very slow test", () {
var callback = expectAsync0((){});
new Timer(new Duration(milliseconds: 1500), () {
expect(true, equals(true));
callback();
});
});
test("a fast test", () {
var callback = expectAsync0((){});
new Timer(new Duration(milliseconds: 500), () {
expect(true, equals(true));
callback();
});
});
});
}
这会使整个组失败,但组可以嵌套,因此您可以完全控制应该监视哪些测试超时。