草庐IT

java - TestNG 与 DataProvider 并行执行

我有一个从数据提供者接收数据的测试。我希望此测试与来自数据提供者的不同值并行运行。我试过这样的方法:publicclassIndependentTest{@Test(dataProvider="dp1",threadPoolSize=3,invocationCount=1)publicvoidtestMethod(intnumber){Longid=Thread.currentThread().getId();System.out.println("HELLO:"+id);}@DataProvider(name="dp1",parallel=true)publicObject[][]d

java - 我可以在 TestNG 测试用例上指定一个类范围的组吗?

我有一个代表TestNG中的数据库测试的基类,我想指定从这个类扩展的所有类都属于“db-test”组,但是我发现这似乎不可能。我试过@Test注解:@Test(groups={"db-test"})publicclassDBTestBase{}但是,这不起作用,因为@Test注释将尝试将一堆方法放入测试中,并且在运行测试时会在eclipse中弹出警告/错误。所以我尝试禁用测试,所以至少分配了组:@Test(enabled=false,groups={"db-test"})publicclassDBTestBase{}但是随后任何@BeforeTest(和其他类似注释)也会被禁用...这

java - TestNG.xml 套件包括所有包的所有文件

即将用Maven+TestNG+Selenium实现一个测试框架。如何声明一个suite.xml告诉TestNG运行所有测试?我已经尝试了所有这些都无济于事:我需要指定具有不同参数但都运行所有测试的不同套件配置。我可以挖掘的每个示例都明确列出了每个类或包,这对我来说意义不大。 最佳答案 据我所知,应该使用.*来匹配它们。 关于java-TestNG.xml套件包括所有包的所有文件,我们在StackOverflow上找到一个类似的问题: https://stac

java - TestNG @BeforeMethod 方法驻留在父类(super class)中并且运行特定组时未调用

我正在尝试使用一个组来运行与我正在从事的工作相关的测试子集,称为“当前”。问题是,如果我使用父类(superclass)在@BeforeMethod中进行一些设置,则该方法会在我运行所有测试时运行,但在我仅使用指定的“当前”组运行时不会运行。因此,当我运行所有测试时,emptyTest失败,因为@BeforeMethod被调用,而当仅运行groupcurrent时,该方法未被调用。注意:如果我将@Test(groups={"current"})添加到子类,那么它会运行-但是,它也会运行所有未标记为“current”的子类,这违背了“current”组的目的.如果有更好的方法来完成此行为

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,测试将失