2014-02-14 63 views
4

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

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

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

我正在考虑两个方案: 1)每次测试运行 2开闭通道)覆盖敲定(),使其关闭通道

他们没有一个似乎很......我已经搜查通过很多页面,但没有人似乎有我有同样的问题。

更漂亮的解决方案?

+0

干净** ** TestNG的解决方案可以在这里找到:http://stackoverflow.com/a/26381858/1857897 – dedek

回答

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"); 
    } 
} 
+1

好了,但是这需要每个“主套件”都有一个注解为@AfterClass的方法。有更通用的解决方案吗? –

+0

如何为专门的HTML报告创建一个单独的大型测试套件,以及如何使用较小的测试套件进行“正常”测试? – Smutje

+0

这正在改变业务需求,但可能是唯一的选择......而实际上我没有想到,所以谢谢你:) –