运行 由于未显示 class 扩展 AbstractTestNGCucumberTests 的 TestNG
Run As TestNG is not shown for class extending AbstractTestNGCucumberTests
请注意,我已经搜索了这个特定问题并找到了几个问题,但其中 none 个场景与黄瓜集成相关。
我有一个测试运行器 class 扩展了 AbstractTestNGCucumberTests。
我还安装了 Eclipse TestNG 插件以及 6.12
还在 运行 配置下的 TestNG 下添加条目,对解决问题没有帮助。
Mac + Eclipse 4.7.0
@CucumberOptions(features={"src/test/resources/WunderlistAndroid.feature"}, strict = false, format = { "pretty","json:target/cucumber.json" }, tags = { "~@ignore" })
public class WLSignIn extends AbstractTestNGCucumberTests{
@BeforeClass
public void launchAppiumServer(){
//code doing desired action
}
@AfterClass
public void killAppiumServer(){
//code doing desired action
}
}
问题是因为 eclipse TestNG 插件在您的 class 中没有看到任何 @Test
方法。我相信该插件本质上是上下文相关的,因此仅当它在您的测试 class 中看到至少一个 @Test
方法时才显示 Run As > TestNG Test
。由于 @Test
方法驻留在您的基础 class 中,插件看不到它,因此您也看不到它。
为了解决这个问题,您或许可以添加一个虚拟测试方法,如下所示,它应该会带回 Run as > TestNG test
选项。
@Test(enabled=false)
public void dummyTestMethod() {}
附带说明:您可能希望将此作为问题提交到 TestNG project 中,看看是否值得修复。
可用于错误的详细信息:
如果基础 class 驻留在一个 jar 中(并且有一个或多个 @Test
带注释的测试方法),那么 eclipse testng 插件看不到子 class(WLSignIn
) 第一次。但是在向子 class (WLSignIn
) 添加禁用的 @Test
方法后,该选项就会出现。无论子 class 是从同一项目中的另一个 class 还是从另一个位于 jar 中的 class 扩展(在您的情况下 cucumber.api.testng.AbstractTestNGCucumberTests
)
我有一个测试运行器 class 扩展了 AbstractTestNGCucumberTests。
我还安装了 Eclipse TestNG 插件以及 6.12
还在 运行 配置下的 TestNG 下添加条目,对解决问题没有帮助。
Mac + Eclipse 4.7.0
@CucumberOptions(features={"src/test/resources/WunderlistAndroid.feature"}, strict = false, format = { "pretty","json:target/cucumber.json" }, tags = { "~@ignore" })
public class WLSignIn extends AbstractTestNGCucumberTests{
@BeforeClass
public void launchAppiumServer(){
//code doing desired action
}
@AfterClass
public void killAppiumServer(){
//code doing desired action
}
}
问题是因为 eclipse TestNG 插件在您的 class 中没有看到任何 @Test
方法。我相信该插件本质上是上下文相关的,因此仅当它在您的测试 class 中看到至少一个 @Test
方法时才显示 Run As > TestNG Test
。由于 @Test
方法驻留在您的基础 class 中,插件看不到它,因此您也看不到它。
为了解决这个问题,您或许可以添加一个虚拟测试方法,如下所示,它应该会带回 Run as > TestNG test
选项。
@Test(enabled=false)
public void dummyTestMethod() {}
附带说明:您可能希望将此作为问题提交到 TestNG project 中,看看是否值得修复。
可用于错误的详细信息:
如果基础 class 驻留在一个 jar 中(并且有一个或多个 @Test
带注释的测试方法),那么 eclipse testng 插件看不到子 class(WLSignIn
) 第一次。但是在向子 class (WLSignIn
) 添加禁用的 @Test
方法后,该选项就会出现。无论子 class 是从同一项目中的另一个 class 还是从另一个位于 jar 中的 class 扩展(在您的情况下 cucumber.api.testng.AbstractTestNGCucumberTests
)