“将TestNG与Groovy一起使用时找不到给定的测试包括在内

问题描述 投票:1回答:1

我正在尝试将Test NG与Groovy一起使用。我实现了一个简单的测试类,但是每当尝试运行它时,都会出现以下错误:

No tests found for given includes: [tests.OTP.get]

tests.OTP类的外观如下:

class OTP{
    public static Logger log = LogManager.getLogger(HomePage.class.getName())
    String environment = 'qatesting'
    String number = '0769878787'
    @Test
    def get(){
//        SoapuiOTP s = new SoapuiOTP(environment,number)
//        s.getOTP()
        log.info("hello")
        Assert.assertEquals(0,System.getProperty("SOAPUI_OTP"))
        log.info System.getProperty('SOAPUI_OTP')
    }
}

我使用def get()旁的播放按钮(IntelliJ)进行测试,但在班级却遇到相同的错误。请协助,我已经尝试使缓存无效并重新启动。我看了TestNG No tests found. Nothing was runTestNG - no tests were found,但没有帮助。

groovy testng
1个回答
1
投票
您需要在用def注释的方法中用void替换@Test。如文档所述:

测试方法用@Test注释。除非您在testng.xml中将@Test设置为true,否则将忽略带有allow-return-values注释的方法并返回一个值:

<test allow-return-values="true">


来源:https://testng.org/doc/documentation-main.html#test-methods

def返回类型编译为Object,而不是void,因此TestNG默认情况下忽略此方法。

这种误解不是TestNG特有的,也可以在JUnit中完成:Running Groovy test cases with JUnit 5

© www.soinside.com 2019 - 2024. All rights reserved.