这是一个取自现有代码库的cucumber场景大纲,但我被要求使用TestNG尝试它。一些东西(场景(),场景(),TestNGCucumberRunner,数据提供商)已经从stackoverflow上的另一个帖子中删除,因为我不知道如何使用TestNG使场景大纲发挥良好。
public class StepsSettings {
private WebDriver driver;
private SettingsPage settingsPage;
private SearchBlock searchBlock;
private TestNGCucumberRunner testNGCucumberRunner;
@Test
@Given("maximum results per page is set to {int}")
public void maximumResultsPerPageIsSetTo(int results) {
settingsPage = new SettingsPage(driver);
searchBlock = new SearchBlock(driver);
settingsPage.navigateTo();
settingsPage.setNumberOfResults(results);
}
@Test
@When("the user searches for {string} in collection {string}")
public void theUserSearchesForInCollection(String key, String collection) {
searchBlock.performSearch(key, collection);
}
@Test
@Then("the number of publications displayed is no more than {int}")
public theNumberOfPublicationsDisplayedIsNoMoreThan(int count) {
By articlesBy = By.cssSelector("article");
Assert.assertTrue(settingsPage.getObjects(articlesBy).size() <= count);
}
@Test(groups = "cucumber scenarios", description = "Runs Cucumber Scenarios", dataProvider = "scenarios")
public void scenario(PickleWrapper pickleEvent, FeatureWrapper cucumberFeature) throws Throwable {
testNGCucumberRunner.runScenario(pickleEvent.getPickle());
}
@DataProvider
public Object[][] scenarios() {
testNGCucumberRunner = new TestNGCucumberRunner(this.getClass());
return testNGCucumberRunner.provideScenarios();
}
@BeforeClass(alwaysRun = true)
public void setup() {
System.setProperty(
"webdriver.chrome.driver",
System.getProperty("user.dir") + "\\webdriver\\chromedriver.exe"
);
driver = new ChromeDriver();
}
@AfterClass(alwaysRun = true)
public void teardown() {
driver.quit();
testNGCucumberRunner.finish();
}
}
在执行时,唯一的错误是NullPointerException,因为WebDriver获取其值时@BeforeClass未触发。
处理场景大纲的部分我不完全理解,但至少我不再得到带错误的不能注入@test注释方法。
请使用@BeforeTest而不是@BeforeClass。如果问题解决了,请尝试理解这里的测试注释流程。或者在这里发表评论,寻求进一步帮助。
用Before/AfterClass注释的方法必须是静态的。
问题内容: 我有以下代码: 以及其他各种方法,例如@ Before,@ After,@ Test或@AfterClass方法。 测试在启动时不会像看起来的那样失败。有谁可以帮助我吗? 我有JUnit 4.5 该方法无法立即调用注释为@before的setUp()。类def是: 问题答案: 不要扩展TestCase并同时使用注释! 如果需要使用批注创建测试套件,请使用RunWith批注,例如: (按
我已经创建了一个 除了一些其他的: 在我的aplication.properties 而这是的入口点: 仍然,我没有看到下的endpointhttps://localhost:8443/v3/api-docs.只有那些来自的endpoint: 我使用的是Spring Boot。 这是我使用的整个pom.xml: 我已经尝试按照这里的建议添加依赖项 但它仍然不起作用。 知道这是什么原因吗?
问题内容: 我正在尝试做这样的事情: 不幸的是,即使在Java 9中也不存在。 为什么它被遗漏了? 建议的解决方法是什么? 问题答案: 为什么它被遗漏了? 该API提供了可重用的构建块。这里的相关积木是,,。通过这些,您可以实现所需的功能:将流内映射到对象,然后获得平面图。提供构建基块的排列是不切实际的,并且很难扩展。 建议的解决方法是什么? 如前所述,使用可用的构建基块(+ ):
许多编译器都提供128位整数类型,但我使用过的编译器都没有提供typedefs。为什么? 据我回忆,标准 用于此目的的储量 鼓励提供此类类型的实现提供typedef 要求此类实现提供至少128位的intmax_t (而且,我不相信我使用了实际上符合最后一点的实现)
Maven依赖项: spring-core:3.0.6。发布 spring-context:3.0.6。发布 spring-test:3.0.6。发布 spring-data-commons-core:1.2.0.m1 spring-data-mongoDB:1.0.0.m4 mongo-java-driver:2.7.3 junit:4.9 cglib:2.2 (1)重写beforeTestCl
我也下载了JDK,我在每个论坛上看到这个问题,都说要添加变量JDK\u HOME或JAVA\u HOME,我两个都试过了,但仍然没有打开。 我重新安装了Android Studio并重新启动了我的计算机,但它没有打开。我得到了这样的加载图标,但它只是卡在上面。 我正在运行Windows 8.1,并且安装了最新版本的JDK。非常高兴能开始编写代码,如有任何帮助或建议,将不胜感激。