JUnit中带有@Test注释的测试可以以毫秒为单位设置超时,例如:
@Test(timeout = 1000)
public void testSomething(){
....
}
然而,我似乎找不到一种方法来设置超时(或@BeforeClass)。
还有其他明智的方法吗?我想知道@BeforeClass是否有某种原因不能超时?
我想这样做:
@BeforeClass(timeout = 1000) // <-- Not currently possible
public static void setup(){
doSomethingWhichMayRunForever();
}
编辑:添加“静态”
在JUnit中,用@BeforeClass注释的方法必须是静态的,我想知道没有它您的方法如何执行
在JUnit中,将整个类标记为超时是不可能的。
在TestNG中,您可以通过使用test注释启动test类来实现这一点:
@Test(timeOut = 500)
public class Mavenproject1Suite {...}
我在下面的gitHub中找到了一些与此相关的代码。我在应用程序中也有一个场景,在@BeforeClass中有超时。我认为在基于@BeforeClass的带注释方法中添加条件/逻辑不是一个好的做法。所以,我处理了每个@测试方法中的条件。
如果有帮助,请查看链接:
https://github.com/jaruk/junit/commit/c5176f18139b9b99dfbc6540d4a6b6a8f049e568
问题内容: 在下面使用这种方法时,通过设置带有套件的jUnit。当每个Testclass中的所有@BeforeClass将在开始执行任何测试之前执行时,我们遇到了问题。(对于每个n个TestClass文件,@BeforeClass运行,然后在它们执行之后,它开始执行第一个MyTest.class文件@Test) 这将导致我们分配大量的资源和内存。我的想法是一定是错误的,每个@BeforeClass
问题内容: 我正在尝试执行JUnit测试期间从我的类路径中加载sample.properties,它在类路径中找不到文件。如果编写Java Main类,则可以很好地加载文件。我正在使用以下ant任务执行我的JUnit。 JUnit: 输出: 问题答案: 您需要添加到。 更新 :根据评论中的交流,事实证明不是问题所在。而是使用了错误的类加载器。 根据加载类的类加载器查找资源的路径。事实证明,该类是由
问题内容: 我被迫将JUnit3用于特定的测试套件。我的理解和服务的功能和,但有一个模拟和对事情应该发生一次测试开始之前,一旦所有的测试运行后? 问题答案: 好的,我应该搜索得更好。 Junit 3中的班级拆解?
我正在使用 JUnit 测试套件来运行一些测试,其中一个测试使用@Parameterized多次运行。我发现当我运行测试时,@Parameterized函数在@BeforeClass之前运行。这是预期的行为还是发生了其他事情?我本来以为@BeforeClass会在任何测试开始之前运行。 这是我的测试套件: 测试1使用@Parameterized: 如何解决此问题以在运行其他任何内容之前运行@Bef
我想在所有测试之前在我的数据库中插入一次。这就是我在setUp()方法中尝试做的事情。但是得到了nullpointer。Spring boot版本是1.5.1.发行版。有什么想法吗?这是来自我的测试类:
问题内容: 当前,我所有的JUnit测试都从一个通用的基类扩展而来,该基类提供了带有和标记的方法 -真正要做的就是设置一堆静态资源/服务以供测试使用。 由于某些原因,这对我来说似乎很尴尬: 根据我的理解,JUnit4的部分要点是我们不再需要这种经典的测试继承。 当我将这些测试作为套件的一部分而不是单独运行(我们经常这样做)时,多次调用和,从而减慢了测试的速度-我们实际上应该只调用一次 我想做的是以