我正在使用@BeforeClass注释来确保在一组5-6个测试中只完成一组活动。有3个java文件的层次结构。
File1扩展了TestCase
File2扩展文件1 (这是我必须在setUp方法中放置beforeclass注释的地方)
File3扩展File2 (文件3的测试数量为5,但我希望文件2中的设置只运行一次)
现在,文件2中的setUp方法在File3中的每个测试之前被调用。甚至在放入@BeforeClass注释之后。我该怎么做才能确保此设置仅对文件3中的所有测试运行一次
答案 0 :(得分:2)
由于您正在扩展TestCase类,因此在每次测试开始之前调用setUp方法。对于junit 4以上,您不需要扩展TestCase类。只是尝试删除它,它应该工作。您还需要在测试方法
上添加@Test注释答案 1 :(得分:2)
我怀疑您使用的是JUnit 3 TestRunner,它忽略了注释并仅使用命名约定(其中setUp()
通常在每次测试之前运行)。尝试使用@Test
注释但不以“test”开头的方法 - 如果没有运行,则使用JUnit 3 TestRunner。
因此,要解决此问题,请使用JUnit 4 TestRunner启动测试套件。