栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java 在jUnit 4.x中套件执行前后的挂钩

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java 在jUnit 4.x中套件执行前后的挂钩

是的,可以在测试套件中进行任何测试之前和之后可靠地运行设置和拆卸方法。让我用代码演示:

package com.test;import org.junit.AfterClass;import org.junit.BeforeClass;import org.junit.runner.RunWith;import org.junit.runners.Suite;import org.junit.runners.Suite.SuiteClasses;@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");    }}

因此,你的Test1类看起来像:

package com.test;import org.junit.Test;public class Test1 {    @Test    public void test1() {        System.out.println("test1");    }}

…并且你可以想象Test2看起来很相似。如果运行TestSuite,你将获得:

setting uptest1test2tearing down

因此,你可以看到设置/拆卸仅分别在所有测试之前和之后运行。

要点:仅当你运行测试套件且未将Test1和Test2作为单独的JUnit测试运行时,此方法才有效。你提到你正在使用maven,并且maven surefire插件喜欢单独运行测试,而不是套件的一部分。在这种情况下,我建议创建一个每个测试类都可以扩展的超类。然后,超类包含带注释的@BeforeClass和@AfterClass方法。尽管不如上面的方法那么干净,但我认为它会为你工作。

至于失败测试的问题,你可以设置maven.test.error.ignore,以便在失败测试中继续构建。不建议你将其作为持续的实践,但是在所有测试通过之前,它应该可以使你正常运行。有关更多详细信息,请参见maven surefire文档。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/456549.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号