草庐IT

testng-dataprovider

全部标签

java - 在 TestNG 上检索测试名称

我可以像在JUnit中一样检索当前运行的测试名称(使用getName()或rules)吗?@TestpublicvoidfooBar(){System.out.println(magic());//shouldprint"fooBar"}附言我不想使用一些基于堆栈跟踪的自写工具。 最佳答案 我通过@BeforeMethod注释找到了更好的解决方案:importjava.lang.reflect.Method;publicclassTest{@BeforeMethodpublicvoidhandleTestMethodName(Met

java - TestNG中的DataProvider和Factory有什么区别?

什么时候用DataProvider,什么时候用Factory? 最佳答案 TestNG工厂用于动态创建测试类的实例。如果您想多次运行测试类,这将很有用。例如,如果您有一个登录站点的测试,并且您想多次运行此测试,那么使用TestNG工厂很容易,您可以在其中创建多个测试类实例并运行测试。publicclassWebTestFactory{//createInstancesmethodwillcreate10objectsofWebTestclass@FactorypublicObject[]createInstances(){Objec

java - TestNG:Eclipse 被 JUnit 搞糊涂了

我在Eclipse项目中使用TestNG设置测试,但我收到一个奇怪的错误:当我尝试从业务类生成测试类时,我收到一个弹出窗口,其中显示一条消息“网格不可编辑”(标题)“编译单元不可编译,或者不是junit.framework.TestCase的子类。修复并再次使用”(正文)。不知何故,Eclipse似乎认为我想创建JUnit类,但我不明白为什么。有什么线索吗?配置:eclipse3.6.0TestNG5.14.10 最佳答案 新近开源的静态分析工具GoogleCodeProAnalytix是问题的根源。它创建了一个新的默认编辑器过滤器

java - Eclipse -- Testng 引用不存在的项目 XXX,启动配置

当尝试将测试作为TestNG套件运行时,我会收到一条非常神秘的错误消息,指出TestNG无法启动,因为它引用了一个不存在的项目。我认为我的项目确实存在,我在包资源管理器中看到了它! 最佳答案 我在为raspberrypi使用raspbian操作系统时遇到了同样的问题。问题是java项目引用了我之前的一个项目。我通过执行以下步骤解决了这个问题。GotoProject->propertiesInpropertieswindow'sleftpaneselect"Run/DebugSettings".Select"Configure"and

java - 在 testng @AfterMethod 中检测测试失败

如果测试失败,我想截图。我不想用try/catchblock包装所有测试方法,而是想将此逻辑添加到用@AfterMethod注释的方法中。如何在用@AfterMethod注解的方法中检测当前测试是否失败? 最佳答案 如果用@AfterMethod注释的方法有一个ITestResult参数,那么TestNG将自动注入(inject)测试结果。(来源:TestNGdocumentation,section5.18.1)这应该可以完成工作:@AfterMethodpublicvoidtearDown(ITestResultresult){

java - TestNG:如何测试强制异常?

我想编写一个TestNG测试以确保在特定条件下抛出异常,如果没有抛出异常则测试失败。有没有一种无需创建额外的boolean变量即可执行此操作的简单方法?有关此主题的相关博客文章:http://konigsberg.blogspot.com/2007/11/testng-and-expectedexceptions-ive.html 最佳答案 @Test(expectedExceptions)对于最常见的情况很有用:您希望抛出一个特定的异常您需要该异常的消息包含特定的词根据文档,如果没有抛出expectedException,测试将失

php - 我可以使用@depends 来依赖使用@dataProvider 的测试吗?

我有一个测试类,其中一个测试通过@dataProvider运行多次,另一个测试@depends在第一种方法上。然而,当我调用var_dump来确定应该传递给第二个测试的内容时,它给了我一个可靠的NULL,这是我没有预料到的。换句话说:这应该做什么:assertNotEmpty($deviceArr);}}?> 最佳答案 在当前版本的PHPUnit(截至今天的5.4)中,这是可能的。根据documentation:Whenatestreceivesinputfrombotha@dataProvidermethodandfromoneo

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,我返回