在JUnit中运行所有测试后调用方法

时间:2014-02-14 07:34:27

标签: java maven testing junit surefire

我想在JUnit中为测试运行创建自定义html报告。我遇到的问题是在完成所有测试后释放资源并关闭标签。

我打开一个FileChannel写入报告。由于每个测试应该是带有行的表,并且有数百个,我不想为每个测试打开和关闭通道。这里出现的问题是测试组织 - 我有嵌套套件,因此testRunFinished不是一个选项(指单套件,不是所有测试,我看到this question)。 TestWatcher也不会帮助我,因为它只涉及单一测试。

使用的工具:maven 3.0.5,ff webdriver,junit 4.11。

我正在考虑两种选择: 1)每次试运行时打开和关闭通道 2)覆盖finalize()使其关闭通道

他们似乎都不漂亮......我搜索了很多页面,但似乎没有人遇到同样的问题。

任何更漂亮的解决方案?

1 个答案:

答案 0 :(得分:5)

是的,请看这里(Before and After Suite execution hook in jUnit 4.x):

@RunWith(Suite.class)
@SuiteClasses({Test1.class, Test2.class})
public class TestSuite {
    @BeforeClass
    public static void setUp() {
        System.out.println("setting up");
    }

    @AfterClass
    public static void tearDown() {
        System.out.println("tearing down");
    }
}