当前位置:  开发笔记 > IOS > 正文

IntelliJ IDEA + TestNG:在组中的每个测试之前运行方法

如何解决《IntelliJIDEA+TestNG:在组中的每个测试之前运行方法》经验,为你挑选了1个好方法。

我正在学习使用TestNG进行IntelliJ IDEA 9.

据我了解,将测试放入一个被调用的组中的一种方法name是对其进行注释@Test(group = "name").要在每次测试之前运行方法,请使用@BeforeMethod.

在我的测试设置中,我想要一个方法在每个测试之前仅在特定组中运行.因此,有一种方法beforeA在组A中的beforeB每个B测试之前运行,在每个测试之前运行的方法等等.

示例代码:

public class TestExample
{
    @BeforeMethod(groups = "A")
    public void beforeA()
    {
        System.out.println("before A");
    }

    @BeforeMethod(groups = "B")
    public void beforeB()
    {
        System.out.println("before B");
    }

    @Test(groups = "A")
    public void A1()
    {
        System.out.println("test A1");
    }

    @Test(groups = "A")
    public void A2()
    {
        System.out.println("test A2");
    }

    @Test(groups = "B")
    public void B1()
    {
        System.out.println("test B1");
    }

    @Test(groups = "B")
    public void B2()
    {
        System.out.println("test B2");
    }
}

我希望输出像

before A
test A1
before A
test A2
before B
test B1
before B
test B2

但我得到以下内容:

before A
before B
before A
before B
test A2
before A
before B
before A
before B
test B1

===============================================

test B2

===============================================
Custom suite
Total tests run: 4, Failures: 0, Skips: 0
===============================================

并且IntelliJ IDEA突出显示了我的所有注释,其中包含"组A未定义"或"组B未定义"的消息.

我究竟做错了什么?



1> Colin Hebert..:

    列表不是很好,这是intelliJ的错.在命令行或maven中运行测试,订单将是正确的.

    @BeforeMethod并且@AfterMethod似乎被团体打破了.

    IntelliJ记住您之前使用过的组,如果您使用的组尚未记住,则会显示消息"组X未定义".只需在未定义的组上按alt+ Enter即可记住它.


资源:

TestNG bug跟踪器 - BeforeMethod和AfterMethod组支持已损坏

TestNG邮件列表 - 涉及组的配置方法的执行顺序

TestNG邮件列表 - 组之前和之后

talios.com - IntelliJ TestNG插件的新检查

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有