2013-03-31 52 views
3

我在運行eclipse中寫入jbehave的IT測試時遇到此異常。org.jbehave.core.io.storyresourcenotfound在eclipse中運行jbehave測試時發生異常

org.jbehave.core.io.storyresourcenotfound 

我有相同的封裝測試/資源/封裝測試/ JAVA /包path_steps.java和path_story.java和path.story文件。

不知道需要改變什麼。

+0

這個例外比它的名字更多。 – jedwards

+0

org.jbehave.core.io.StoryResourceNotFound:類加載器找不到的故事路徑'path/story_name.story'sun.misc.Lau[email protected] – user1772643

+0

因此,無論您的'story_name.story'文件是不是你的位置告訴程序它是(在'path /'裏面)還是複製並粘貼指定path/story_name.story路徑的代碼,並且沒有更新它以反映你的項目佈局以及你的故事實際存在/被命名的位置。 – jedwards

回答

1

我不確定我的背景是否與您的背景相同,但在我的案例中,問題是我的步驟文件中存在拼寫錯誤。我有一個Then條件與兩個參數,但我的Steps.java文件中的方法簽名缺少其中之一。我糾正了錯誤,並且我的測試成功通過了。

下面是錯誤的是,我得到:

[INFO] Using controls UnmodifiableEmbedderControls[EmbedderControls[batch=false,skip=false,generateViewAfterStories=true,ignoreFailureInStories=true,ignoreFailureInView=false,verboseFailures=false,verboseFiltering=false,storyTimeoutInSecs=300,failOnStoryTimeout=false,threads=1]] 

(BeforeStories) 

[INFO] Running story com/netbase/OpMetricsFilterBuilder/stories/ComputeDerivedValue.story 
Compute Derived Value 
(com/netbase/OpMetricsFilterBuilder/stories/ComputeDerivedValue.story) 
Narrative: 
In order to explore how my social media activity ties to my core business metrics 
As a n analyst 
I want to compute a derived time series value from a set of component time series 
Scenario: Compute Net Intent to Shop 
Given the following time series: 

|Date|Shop|NotShop| 
|11/5/2014|330|400| 
|11/6/2014|370|410| 
|11/7/2014|320|390| 
|11/8/2014|200|280| 
|11/9/2014|430|450| 

And a derived value name of NetIntentToShop 
And a formula for computing the derived value is (#{Shop} - #{NotShop})/(#{Shop} + #{NotShop}) * 100 
When the NetIntentToShop is derived 
Then the NetIntentToShop should be 
|Date|NetIntentToShop| 
|11/5/2014|-9.58904109589041| 
|11/6/2014|-5.128205128205128| 
|11/7/2014|-9.859154929577464| 
|11/8/2014|-16.666666666666664| 
|11/9/2014|-2.272727272727273| (FAILED) 
(org.jbehave.core.io.StoryResourceNotFound: Story path 'NetIntentToShop' not found by class loader EmbedderClassLoader[urls=[/Users/mosofsky/Developer/SocialMetrics/nbsocialmetrics-frontend/target/classes/, appengine-api-1.0-sdk-1.9.15.jar, servlet-api-2.5.jar, jstl-1.2.jar, objectify-5.1.1.jar, guava-17.0.jar, jeval-0.9.4.jar, gwt-user-2.7.0-rc1.jar, validation-api-1.0.0.GA.jar, validation-api-1.0.0.GA-sources.jar, gwt-dev-2.7.0-rc1.jar, asm-5.0.3.jar, asm-util-5.0.3.jar, asm-tree-5.0.3.jar, asm-commons-5.0.3.jar, jbehave-core-3.9.5.jar, hamcrest-integration-1.3.jar, commons-collections-3.2.1.jar, commons-io-2.4.jar, commons-lang-2.6.jar, plexus-utils-3.0.10.jar, freemarker-2.3.19.jar, paranamer-2.4.jar, xstream-1.4.5.jar, xmlpull-1.1.3.1.jar, xpp3_min-1.1.4c.jar, jbehave-junit-runner-1.1.2.jar, junit-4.11.jar, mockito-core-1.9.5.jar, hamcrest-core-1.3.jar, hamcrest-library-1.3.jar, objenesis-1.3.jar],parent=ClassRealm[plugin>org.jbehave:jbehave-maven-plugin:3.9.5, parent: [email protected]]]) 


[WARNING] Failed to run story com/netbase/OpMetricsFilterBuilder/stories/ComputeDerivedValue.story 
org.jbehave.core.io.StoryResourceNotFound: Story path 'NetIntentToShop' not found by class loader EmbedderClassLoader[urls=[/Users/mosofsky/Developer/SocialMetrics/nbsocialmetrics-frontend/target/classes/, appengine-api-1.0-sdk-1.9.15.jar, servlet-api-2.5.jar, jstl-1.2.jar, objectify-5.1.1.jar, guava-17.0.jar, jeval-0.9.4.jar, gwt-user-2.7.0-rc1.jar, validation-api-1.0.0.GA.jar, validation-api-1.0.0.GA-sources.jar, gwt-dev-2.7.0-rc1.jar, asm-5.0.3.jar, asm-util-5.0.3.jar, asm-tree-5.0.3.jar, asm-commons-5.0.3.jar, jbehave-core-3.9.5.jar, hamcrest-integration-1.3.jar, commons-collections-3.2.1.jar, commons-io-2.4.jar, commons-lang-2.6.jar, plexus-utils-3.0.10.jar, freemarker-2.3.19.jar, paranamer-2.4.jar, xstream-1.4.5.jar, xmlpull-1.1.3.1.jar, xpp3_min-1.1.4c.jar, jbehave-junit-runner-1.1.2.jar, junit-4.11.jar, mockito-core-1.9.5.jar, hamcrest-core-1.3.jar, hamcrest-library-1.3.jar, objenesis-1.3.jar],parent=ClassRealm[plugin>org.jbehave:jbehave-maven-plugin:3.9.5, parent: [email protected]]] 
    at org.jbehave.core.io.LoadFromClasspath.resourceAsStream(LoadFromClasspath.java:44) 
    at org.jbehave.core.io.LoadFromClasspath.loadResourceAsText(LoadFromClasspath.java:29) 
    at org.jbehave.core.model.ExamplesTableFactory.createExamplesTable(ExamplesTableFactory.java:76) 
    at org.jbehave.core.steps.ParameterConverters$ExamplesTableConverter.convertValue(ParameterConverters.java:647) 
    at org.jbehave.core.steps.ParameterConverters.convert(ParameterConverters.java:151) 
    at org.jbehave.core.steps.StepCreator.convertParameterValues(StepCreator.java:304) 
    at org.jbehave.core.steps.StepCreator.access$1100(StepCreator.java:36) 
    at org.jbehave.core.steps.StepCreator$ParametrisedStep.parametriseStep(StepCreator.java:640) 
    at org.jbehave.core.steps.StepCreator$ParametrisedStep.perform(StepCreator.java:592) 
    at org.jbehave.core.embedder.StoryRunner$FineSoFar.run(StoryRunner.java:535) 
    at org.jbehave.core.embedder.StoryRunner.runStepsWhileKeepingState(StoryRunner.java:515) 
    at org.jbehave.core.embedder.StoryRunner.runScenarioSteps(StoryRunner.java:479) 
    at org.jbehave.core.embedder.StoryRunner.runStepsWithLifecycle(StoryRunner.java:445) 
    at org.jbehave.core.embedder.StoryRunner.runCancellable(StoryRunner.java:305) 
    at org.jbehave.core.embedder.StoryRunner.run(StoryRunner.java:220) 
    at org.jbehave.core.embedder.StoryRunner.run(StoryRunner.java:181) 
    at org.jbehave.core.embedder.StoryManager$EnqueuedStory.call(StoryManager.java:262) 
    at org.jbehave.core.embedder.StoryManager$EnqueuedStory.call(StoryManager.java:229) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:745) 

這裏是錯誤的方法簽名:

@Then("the $derivedValueName should be: $expectedOutputDataTable") 
public void thenTheDerivedValueShouldBe(ExamplesTable expectedOutputDataTable) { 

這裏的修正:

@Then("the $derivedValueName should be: $expectedOutputDataTable") 
public void thenTheDerivedValueShouldBe(String derivedValueName, ExamplesTable expectedOutputDataTable) { 

這似乎是一個有趣的錯誤消息爲我的情況。我猜如果Steps.java文件中缺少參數,那麼Jbehave可能會將其作爲資源進行搜索。

相關問題