在eclipse中使用jbehave执行项目时出现问题

在eclipse中使用jbehave执行项目时出现问题,eclipse,jbehave,jbehave-plugin,Eclipse,Jbehave,Jbehave Plugin,我对jbehave甚至自动化测试都是全新的。 我在线阅读了一篇教程,并尝试按照以下步骤进行操作 我试图在EclipseIDE中运行这个应用程序 我制作了一个Math.story文件,其中包含以下测试: Scenario: 2 squared Given a variable x with value 2 When I multiply x by 2 Then x should equal 4 在名为ExampleSteps.java的.java文件中,步骤如下所示: import org.j

我对jbehave甚至自动化测试都是全新的。 我在线阅读了一篇教程,并尝试按照以下步骤进行操作

我试图在EclipseIDE中运行这个应用程序

我制作了一个Math.story文件,其中包含以下测试:

Scenario: 2 squared
Given a variable x with value 2
When I multiply x by 2 
Then x should equal 4
在名为ExampleSteps.java的.java文件中,步骤如下所示:

import org.jbehave.core.annotations.Given;
import org.jbehave.core.annotations.Named;
import org.jbehave.core.annotations.Then;
import org.jbehave.core.annotations.When;
import org.jbehave.core.steps.Steps;

public class ExampleSteps extends Steps {
    int x;

    @Given("a variable x with value $value")
    public void givenXValue(@Named("value") int value) {
        x = value;
    }

    @When("I multiply x by $value")
    public void whenImultiplyXBy(@Named("value") int value) {
        x = x * value;
    }

    @Then("x should equal $value")
    public void thenXshouldBe(@Named("value") int value) {
        if (value != x)
            throw new RuntimeException("x is " + x + ", but should be " + value);
    }
}
我创建了另一个类SimpleJbehave,它具有main方法: 导入java.util.array; 导入java.util.List

import org.jbehave.core.embedder.Embedder;

public class SimpleJBehave {

    private static Embedder embedder = new Embedder();
    private static List<String> storyPaths = Arrays
            .asList("Math.story");

    public static void main(String[] args) {
        embedder.candidateSteps().add(new ExampleSteps());
        embedder.runStoriesAsPaths(storyPaths);

    }
}
import org.jbehave.core.embedder.embedder;
公共类simplejb{
私有静态嵌入式程序Embedder=新的嵌入式程序();
私有静态列表故事路径=数组
.asList(“数学故事”);
公共静态void main(字符串[]args){
embedder.CandidateTesteps().add(新示例步骤());
embedder.RunStoriesPath(故事路径);
}
}
运行此代码时,会出现以下异常:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/collections/Transformer
    at org.jbehave.core.configuration.Configuration.<init>(Configuration.java:112)
    at org.jbehave.core.configuration.MostUsefulConfiguration.<init>(MostUsefulConfiguration.java:49)
    at org.jbehave.core.embedder.Embedder.<init>(Embedder.java:30)
    at org.jbehave.core.embedder.Embedder.<init>(Embedder.java:37)
    at SimpleJBehave.<clinit>(SimpleJBehave.java:8)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections.Transformer
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 5 more
线程“main”java.lang.NoClassDefFoundError中的异常:org/apache/commons/collections/Transformer 位于org.jbehave.core.configuration.configuration.(configuration.java:112) 在org.jbehave.core.configuration.mostusiveconfiguration.(mostusiveconfiguration.java:49) 位于org.jbehave.core.embedder.embedder.(embedder.java:30) 位于org.jbehave.core.embedder.embedder.(embedder.java:37) 在SimpleJBehave。(SimpleJBehave.java:8) 原因:java.lang.ClassNotFoundException:org.apache.commons.collections.Transformer 位于java.net.URLClassLoader$1.run(未知源) 位于java.net.URLClassLoader$1.run(未知源) 位于java.security.AccessController.doPrivileged(本机方法) 位于java.net.URLClassLoader.findClass(未知源) 位于java.lang.ClassLoader.loadClass(未知源) 位于sun.misc.Launcher$AppClassLoader.loadClass(未知源) 位于java.lang.ClassLoader.loadClass(未知源) ... 还有5个 由于我是一个新手,我一直无法理解到底是什么问题

如果有人能告诉我应该怎么做才能让代码正常工作,那就太好了。 我的方法错了吗


非常感谢您。

您的类路径上似乎没有
org.apache.commons.collections.Transformer
。apache commons transformer库中似乎提供了此类:


下载jar并将其添加到类路径中。它可能会工作。

我在路径中添加了apache-collections-commons-collections-3.1.jar、freemarker-2.3.6.jar、jbehave-core-3.0.2.jar、org.apache.commons.io.jar和org.apache.commons.lang.jar。但现在,我无法在outputDirectory中生成故事视图。这是由org.jbehave.core.reporters.FreemarkerViewGenerator$ViewGenerationFailedForTemplate引起的。我不知道该怎么处理?我创建的.story文件有问题吗?因为它说,“没有一步是匹配的”。我真的是个新手,根本不知道我应该做什么。谢谢。@Sathya:你找到这个问题的解决方案了吗?我面临同样的问题,我刚刚开始使用Jbehave,请告诉我是否有解决方案。提前谢谢!!