草庐IT

java - 在 TestNG 中使用 @BeforeMethod 时有没有办法获取方法元数据?

我正在使用TestNG并且有一套测试。我想在每个需要有关该方法的信息的测试方法之前执行一个操作。作为一个简单的例子,假设我想在执行之前打印方法的名称。我可以编写一个用@BeforeMethod注释的方法。如何将参数注入(inject)该方法? 最佳答案 看看dependencyinjection文档中的部分。它指出可以在这种情况下使用依赖注入(inject):Any@BeforeMethod(and@AfterMethod)candeclareaparameteroftypejava.lang.reflect.Method.This

java - TestNG:一个@Test 有多个@DataProvider

我正在为Eclipse使用TestNG。是否可以逐步将两个数据提供者提供给相同的测试功能?我可以将两个提供商合二为一,但这不是我想要的。我需要(不像本例那样)独立生成数据。@DataProvider(name="dataSet1")publicObject[][]createDataX(){returnnewObject[][]{{1,1},{2,2}};}@DataProvider(name="dataSet2")publicObject[][]createDataY(){returnnewObject[][]{{0,0},{3,3}};}我想让两个提供者都接受相同的测试。这可能吗?

java - TestNG 报告中的自定义测试方法名称

我正在开发一个需要以编程方式调用TestNG(使用数据提供程序)的项目。一切都很好,只是在报告中,我们得到了@Test方法的名称,它是处理许多情况的通用方法。我们希望在报告中获得一个有意义的名称。我对此进行了研究,发现了3种方法,但不幸的是,我都失败了。1)实现ITest我发现了here和here我在输入@Test方法后立即设置我想要的名称(对于我尝试的所有3种方法,这就是我设置名称的方式)。这个名称是从getTestName()返回的。我观察到的是getTestName()在我的@Test之前和之后被调用。最初,它返回null(为了处理NullPointerException,我返回

java - 错误 : org. testng.TestNGException:在类路径中找不到类:EmpClass

当我尝试运行测试套件时,我得到了这个异常。我们在这里使用maven项目,我完成了刷新、清理、重新安装testNG,然后导入了maven项目,但也遇到了同样的异常。请提出这里缺少的任何方法。错误控制台:org.testng.TestNGException:Cannotfindclassinclasspath:EmpClassatorg.testng.xml.XmlClass.loadClass(XmlClass.java:81)atorg.testng.xml.XmlClass.init(XmlClass.java:73)atorg.testng.xml.XmlClass.(XmlCla

java - 如何根据条件禁用 TestNG 测试

目前有没有办法根据条件禁用TestNG测试我知道您目前可以在TestNG中禁用测试:@Test(enabled=false,group={"blah"})publicvoidtestCurrency(){...}我想根据条件禁用相同的测试,但不知道如何。像这样:@Test(enabled={isUk()?false:true),group={"blah"})publicvoidtestCurrency(){...}任何人都知道这是否可能。 最佳答案 一个更简单的选择是在检查您的条件的方法上使用@BeforeMethod注释。如果您想

java - 如何从命令行运行 TestNG

究竟如何从命令行运行.javaTestNG项目?我已经阅读了TestNG文档,并尝试了以下方法无济于事:C:\projectfred>javaorg.testng.TestNGtestng.xml...在我的项目中使用以下testng.xml文件:我得到的错误是这样的:Exceptioninthread"main"java.lang.NoClassDefFoundError:org/testng/TestNGCausedby:java.lang.ClassNotFoundException:org.testng.TestNGatjava.net.URLClassLoader$1.run

java - 如何获取在 testng 拆卸方法中运行的测试方法的名称?

基本上,我有一个拆卸方法,我想登录到刚刚运行测试的控制台。我将如何获取该字符串?我可以得到类名,但我想要刚刚执行的实际方法。publicclassTestSomething{@AfterMethodpublicvoidtearDown(){System.out.println("Thetestthatjustranwas:"+getTestThatJustRanMethodName());}@TestpublicvoidtestCase(){assertTrue(1==1);}}...应该输出到屏幕:“刚刚运行的测试是:testCase”但是,我不知道getTestThatJustRa

java - 基类上的 TestNg @BeforeTest 每个夹具仅发生一次

我正在尝试使用@BeforeTest让代码...在每次测试之前运行一次。这是我的代码:publicclassTestBase{@BeforeTestpublicvoidbefore(){System.out.println("BeforeTest");}}publicclassTestClassextendsTestBase{@Testpublicvoidtest1(){}@Testpublicvoidtest2(){}}“BeforeTest”只打印一次,而不是两次。我做错了什么? 最佳答案 使用@BeforeMethod,而不是

java - 注释服务以使用@Retention、@Transactional、@Inherited 进行测试后,TestNG 单元测试不起作用

我正在使用TestNG测试业务服务,在SpringBoot应用程序中进行模拟单元测试。应用程序是多模块springboot项目。我正在为业务模块编写单元测试。我在pom中添加了以下依赖相关的测试,org.springframework.bootspring-boot-starter-testtestorg.springframework.bootspring-boot-starter-data-jpatestorg.testngtestng${testng.version}testorg.mockitomockito-coretestorg.hsqldbhsqldbtestorg.hi

java - TestNG 是否有像 SpringJUnit4ClassRunner 这样的运行者

当我在JUnit中(在Spring上下文中)编写测试时,我通常会这样做:@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration("classpath:testContext.xml")publicclassSimpleTest{@TestpublicvoidtestMethod(){//executetestlogic...}}如何使用TestNG做同样的事情?我会添加更多细节。使用AbstractTestNGSpringContextTests它可以工作,但不是我想要的方式。我有一些测试...@ContextConfi