Tag: 黄瓜

运行Cucumber JUnit测试时的InitializationError

package cucumber; import org.junit.runner.RunWith; import cucumber.api.CucumberOptions; import cucumber.api.junit.Cucumber; @RunWith(Cucumber.class) @CucumberOptions( format={“pretty”}, features= “src/features/” ) public class cucumberRunner { } 使用: 黄瓜核心-1.2.4 黄瓜Java的1.2.4 黄瓜的junit-1.2.4 JUnit的-4.12 Eclipse Mars.1 java 8 错误跟踪: java.lang.NoClassDefFoundError:org / dom4j / java上java.lang.Class.privateGetDeclaredMethods(未知来源)的java.lang.Class.getDeclaredMethods0(本地方法)中的元素java.lang上的java.lang.Class.privateGetPublicMethods(未知来源)。位于cucumber.runtime.java.JavaBackend.loadGlue(JavaBackend.java:86)的cucumber.runtime.Runtime.Runtime的cucumber.runtime.java.MethodScanner.scan(MethodScanner.java:40)中的lang.Class.getMethods(未知来源)。 (runtime.java:91)在cucumber.runtime.Runtime。(Runtime.java:69)在cucumber.runtime.Runtime。(Runtime.java:65)在cucumber.api.junit.Cucumber.createRuntime(Cucumber.java: 78)在gree.api.junit.Cucumber。(Cucumber.java:58)at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance (未知来源)atg.junit.internal.builders.AnnotatedBuilder.buildRunner(A中的java.lang.reflect.Constructor.newInstance(未知来源) nnotatedBuilder.java:104)org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)org.junit.internal .builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33 )org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createUnfilteredTest(JUnit4TestLoader.java:84)at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:70)at org。 eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:43)位于org.eclipse.jdt的org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:444)。 org.eclipse.jdt.internal.junit.runner中的internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)。 RemoteGestRunner.run(RemoteTestRunner.java:382)位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)引起:java.lang.ClassNotFoundException:java的org.dom4j.Element。 java.lang.ClassLoader.findClass(未知来源)at java.lang.ClassLoader.loadClass(未知来源)at sun.misc.Launcher $ […]

黄瓜jvm无法执行function

我很喜欢使用黄瓜(今天开始)。 这看起来很简单,但我遇到了运行基本function的问题。 Feature: Proof of concept that my framework works Scenario: My first test Given this is my first step When this is my second step Then this is my final step 我知道它没有代码可供测试,但我希望它能够返回这些场景未定义的事实。 我做了一些研究,并意识到我有一个不必要的.jar文件,我已经删除了。 我还有以下问题: Exception in thread “main” java.lang.NoClassDefFoundError: gherkin/lexer/Encoding Caused by: java.lang.ClassNotFoundException: gherkin.lexer.Encoding 还有一些来自exception的信息。 我还应该提供其他信息吗? 任何帮助,将不胜感激

挂钩黄瓜检查java中的场景失败

当我在阅读如何为失败的黄瓜场景添加清理时,我在互联网上获得了这段代码。 After do |s| if s.failed? #If you are on an iOS Device $driver.quit sleep(time_for_driver_ready) #else reset end end 这是ruby。 我在java工作,有没有办法实现s.failed? 在java中,因为在java中,after方法声明不包含场景变量。

cucumber(Java中):如何仅使用两个标记运行方案

我有一些function文件,每个方案都有多个标签。 但我想运行同时拥有@a和@b场景的人。 我怎样才能做到这一点? tags = {“@a, @b”}, –> this will do @a OR @b scenarios 谢谢。

黄瓜0.4.3(cuke4duke)与java + maven gem问题

我最近开始为黄瓜安装一个示例项目,并尝试使用maven + java运行它。 我按照这个指南 http://www.goodercode.com/wp/using-cucumber-tests-with-maven-and-java/ 第一个问题是当我运行mvn cuke4duke:cucumber -DinstallGems = true我从jruby-complete-1.5.6 jar运行gem命令时遇到问题 我安装了JRuby1.5.6并将cuke4duke gem自己安装到maven存储库。 现在,当我运行上面的命令时,我在脚本文件“require’rubygem’”中收到错误,并且它无法再次执行gem命令。 我在xp上运行并尝试使用maven 2.0.9和maven 3.0.2(全新安装) 我已经尝试运行java -classpath“跟踪中的所有库”org.Main gem install cuke4duke ….(请参阅完整命令的跟踪),这不起作用。 为了安装gems,我使用了JRuby安装程序并执行了相同的命令,它运行正常。 用java在Windows上运行黄瓜怎么这么难? 我尝试了几种变化,只是不知道接下来该做什么。 这是我的堆栈跟踪与运行mvn cuke4duke:cucumber -DinstallGems = true Apache Maven 3.0.2 (r1056850; 2011-01-09 00:58:10+0000) Java version: 1.6.0_21, vendor: Sun Microsystems Inc. Java home: C:\Program Files\Java\jdk1.6.0_21\jre Default locale: en_GB, platform encoding: Cp1252 OS […]

Cucumber类扩展步骤定义和钩子

我想从java中的“AbstractBase_step”类扩展。 所以我想要一个像这样的钩子: public abstract class AbstractBase_Steps { protected Scenario scenario; @Before public void background(Scenario scenario) { this.scenario = scenario; } } 为每个步骤文件调用: public abstract class Hello_Steps extends AbstractBase_Steps { } 当我这样做时,我得到了 cucumber.runtime.CucumberException:您不能扩展定义步骤定义或钩子的类。 类Hello_Steps扩展了类AbstractBase_Steps 有人有诀窍吗? 编辑:为了重用相同的步骤定义,我创建了一个新的类Common_Steps并将其包含在粘合路径中。 因此,它的定义可用于测试中的所有要素文件。

如何在Intellij中运行单个黄瓜场景?

我有一个简单的问题 – 我想运行一个Cucumber场景,但我似乎无法找到任何选项/配置。 我有5-6个场景,我可以设置配置来运行所有测试,但是当我纠正一个场景时需要花费太多时间……

有没有办法直接在Eclipse中生成步骤定义而不运行黄瓜?

我正在使用Eclipse中的黄瓜和Gradle进行集成测试。 现在我的工作流程是 写一个特征文件 运行它以生成步骤骨架 复制并实施它们 这适用于新function等,但如果您有一个大function并在中间或结尾实施新步骤,这会变得相当麻烦。 要获得新的步骤骨架,我需要运行整个function。 即使有了 dryRun = true 选项这需要很长时间。 我听说IntellyJ可以直接生成这些步骤骨架,我想知道在Eclipse中是否可以这样做?

@Before不会在java Cucumber Step中执行

我有一个Cucumber Step类,我正在尝试初始化所有场景的页面模型。 所以我添加了一个@Before带注释的方法: @Before() private void beforeScenario() { LOGGER.info(“Running before!”); loginPage = BrowserDriver.getPageModel(LoginPage.class); } 然后,我有一堆依赖于loginPage设置的步骤。 例如 @When(“^I click the help link$”) public void I_click_the_help_link() { loginPage.clickHelpLink(); } 我有多个Step类。 上述两种方法都在同一个Step类中。 但是loginPage始终为null。 永远不会调用beforeScenario方法。 我是否完全误解了@Before是如何工作的? 关于如何获得我想要的工作的任何提示? 编辑:我还有一个@After带注释的方法,它可以按照预期在每个场景之后运行。 编辑:Pom可以在http://pastebin.com/PJ6qQRK9上看到

黄瓜跨浏览器测试

我想平行地在三个不同的浏览器中运行一个function文件。 如何创建三个不同的webdriver实例? 并请添加如何对两个不同的function文件执行相同的操作? PS我正在研究黄瓜与java。