- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Karate BDD 框架在我的 API 套件上运行测试,但遇到了 NPE。据我所知,我没有配置错误任何东西,但我确定我忽略了一些东西。鉴于以下功能文件和任务运行器,我是否做错了什么?
更新:这适用于 Karate 0.2.9,但不适用于当前最新的 0.5.0.2
特征文件:.../src/test/resources/root/feature/sanity.feature
Feature: Sanity Check
As a developer
I want to ensure that the test framework is active
So that I can be confident I am testing correctly
Background:
* url httpBin
Scenario: httpBin reflection
Given path '/anything/foo/bar?baz=quux'
When method GET
Then status 200
And match response contains { "args": {"baz":"quux"}}
And match response contains { "method": "GET" }
驱动程序:.../src/test/java/root/feature/sanity/SmokeTest.java
package root.feature.sanity;
import com.intuit.karate.junit4.Karate;
import cucumber.api.CucumberOptions;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
/**
* Created by williamspaul on 8/29/17.
*/
@RunWith(Karate.class)
@CucumberOptions(plugin = {"pretty", "html:target/cucumber"})
public class SmokeTest {
@BeforeClass
public static void beforeClass() {}
@AfterClass
public static void afterClass() {}
}
mvn 测试输出
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running root.feature.sanity.SmokeTest
10:46:08.568 [main] DEBUG com.intuit.karate.cucumber.CucumberRunner - init test class: class apigee.feature.sanity.SmokeTest
10:46:08.680 [main] DEBUG com.intuit.karate.cucumber.CucumberRunner - loading feature: /(private-path)/target/test-classes/root/feature/sanity/sanity.feature
Feature: Sanity Check
As a developer
I want to ensure that the test framework is active
So that I can be confident I am testing correctly
Background: # apigee/feature/sanity/sanity.feature:6
* url httpBin
0 Scenarios
0 Steps
0m0.000s
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.389 sec <<< FAILURE!
Feature: Sanity Check Time elapsed: 0.11 sec <<< ERROR!
java.lang.NullPointerException
at com.intuit.karate.cucumber.CucumberUtils.afterStep(CucumberUtils.java:148)
at com.intuit.karate.cucumber.CucumberUtils.runStep(CucumberUtils.java:140)
at com.intuit.karate.cucumber.KarateRuntime.runStep(KarateRuntime.java:51)
at cucumber.runtime.model.StepContainer.runStep(StepContainer.java:44)
at cucumber.runtime.model.StepContainer.runSteps(StepContainer.java:39)
at cucumber.runtime.model.CucumberScenario.runBackground(CucumberScenario.java:59)
at cucumber.runtime.model.CucumberScenario.run(CucumberScenario.java:42)
at cucumber.runtime.junit.ExecutionUnitRunner.run(ExecutionUnitRunner.java:102)
at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:63)
at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:18)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at cucumber.runtime.junit.FeatureRunner.run(FeatureRunner.java:70)
at com.intuit.karate.junit4.Karate.runChild(Karate.java:60)
at com.intuit.karate.junit4.Karate.runChild(Karate.java:25)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at com.intuit.karate.junit4.Karate.run(Karate.java:66)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
Results :
Tests in error:
Feature: Sanity Check
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0
最佳答案
您实际上使用的是测试版。只需使用 0.5.0 就可以了。
顺便说一句,非常感谢您找到这个,它已在开发分支中修复:https://github.com/intuit/karate/issues/158
也请查看 this tweet有关为什么需要这个前/后步骤钩子(Hook)的详细信息
关于java - Karate BDD 框架通过简单的配置抛出 NPE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45944640/
有没有人使用 BDD 来驱动他们的域层? 最佳答案 是的,我们发现这个过程非常有效,并且使用 specflow 来提供这种方法相当容易。我们仅在域层中就实现了 2000 多个场景,我们也使用这种方法来
你需要像Fitnesse这样的东西吗? , 如果您有 BDD测试? 最佳答案 BDD“测试”存在于多个不同的粒度级别,一直到最初的项目愿景。大多数人都知道这些场景。有几个人记得BDD started
对于在休闲游戏开发工作室开始学习和应用 BDD,您有什么建议? 最佳答案 虽然我不能说专门在游戏中使用 BDD,但我不能错过向您介绍这篇优秀文章的机会: http://www.code-magazin
我很喜欢 BDD 的开发方法,但我遇到了对走多远的担忧。这条来自 ThoughtWorks 的最新评论 Radar让我暂停: "The advent of behavior-driven design
我有很多相同的场景,它们只是传递给它们的数据不同。 这是示例: 功能:将报表中的事实链接到 Excel 文档 为了将事实链接到 Excel 文档 作为有权报告的用户 我想点击报告中的事实值 场景:任何
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
似乎互联网没有明确的答案,也没有一套原则来帮助我回答这个问题。所以我求助于 SO 上的伟大人物帮助我找到答案或指导思想:) SpecFlow 对于 .NET 中的 BDD 非常有用。但是当我们谈论 B
我是 BDD 的新人。所以我对场景有一些疑问? BDD 场景和用户场景之间有什么区别?与传统所谓的“用户场景”或“用例”有明显区别吗?你能解释一下吗? 最佳答案 由于您刚才提到的“传统用户场景”有点含
我是 BDD 的新人。所以我对场景有一些疑问? BDD 场景和用户场景之间有什么区别?与传统所谓的“用户场景”或“用例”有明显区别吗?你能解释一下吗? 最佳答案 由于您刚才提到的“传统用户场景”有点含
只是寻找 BDD/SpecFlow 的一些示例 - 理想情况下是一个项目б,这样我就可以了解如何在大型项目中使用 SpecFlow,其中多个功能引用相同的步骤等. 在过去的几个月里,我读了一些博客,但
我们有一个工作流引擎,它会显示可用工作流列表(我指的是工作流定义,而不是实例),用户可以单击任何工作流旁边的“执行”链接来执行该工作流的新实例。我想以 BDD 方式完成这个“执行工作流”故事(功能?)
有谁知道实现这一目标的方法,或者他们认为这是一个好主意。在 Gherkin 中使用 OR 样式语法以减少重复但保持人类可读性(希望如此)。我正在考虑使用多个 OR 语句的每个组合扩展子句组合的情况。例
我有许多 BDD 故事/场景(450+ 以及不断增加),我为现有系统继承了这些故事/场景:more info 。这些故事是使用文件系统文件夹组织的: C:\specifications |
我希望更改 Serenity 报告中的 CSS 和 Logo 。此外,我想在 Serenity 报告中添加一些自定义文本或一些测试的链接。就像生成了一个 excel 报告,我希望在报告的测试步骤中提供
我正在处理几个月前部分完成的代码分支,以及相互交织的依赖关系。因此,前进的最简单方法是将特定分支上的失败测试标记为待处理(rspec 方式)或跳过,并在所有内容合并后处理它们。 在其最终报告中,beh
我是 BDD 新手,使用 SpecFlow 我正在尝试制定一种高效、有组织且可维护的方法(用于 ASP.NET MVC 中)。我需要改进的主要方面是: 步骤分组(到步骤文件中) 重用测试对象(就像通过
我整个星期都在四处寻找,无法全神贯注于如何让我们的 pylons 服务器实例启动以与 Behave BDD 一起使用。你们中的任何人都可以指出我的例子或提供您自己的例子吗?这是我正在处理的内容: 来自
我正在尝试为多步骤业务流程编写需求(通过向导)。我有很多场景,用户与一个屏幕的交互会改变您是否可以在另一个屏幕上选择选项。 例如(我已经模糊了实际业务,但步骤的过程和形式几乎相同): Feature:
有没有人有在 BDD 中使用现成框架作为规范流与 CQRS 的经验。 我喜欢 Mark Nijhof 的方法,但是我已经将 SpecFlow 用于其他项目。任何人都可以提供一些启示,如果可能的话,举个
我们正在尝试为每个步骤截取屏幕截图。 一切正常。但是我们无法将屏幕截图与创建它们的步骤相关联。 我们想要的是类似 FeatureContext.FeatureInfo 的东西和 ScenarioCon
我是一名优秀的程序员,十分优秀!