2016-09-22 5 views
-1

jbehave 스토리 파일과 junit을 사용하여 자동화 테스트를위한 프레임 워크를 만들고 있습니다.junhave 스토리 파일을 junit을 통해 실행할 수 없습니다.

PFB가 :

this is my story file which is located in src/test/java/com/cdm/story/

이 내가 코드를 실행하고있는 곳에서 내 클래스 파일 : 나는 이야기 파일의 경로를 정의

class which extends the junitstories

도 다음의 JUnit은 실행을위한 이야기를 수집 할 수 없습니다. 그때 아래와 같이 storypath을 변경 콘솔이 무엇입니까 경우

org.jbehave.core.io.StoryResourceNotFound: Story path 'ConnectedDevicesManagementPage.story' not found by class loader [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.io.LoadFromClasspath.loadStoryAsText(LoadFromClasspath.java:38) 
    at org.jbehave.core.embedder.PerformableTree.storyOfPath(PerformableTree.java:193) 
    at org.jbehave.core.embedder.PerformableTree.addStories(PerformableTree.java:68) 
    at org.jbehave.core.embedder.StoryManager.runStories(StoryManager.java:78) 
    at org.jbehave.core.embedder.Embedder.runStoriesAsPaths(Embedder.java:203) 
    at com.cdm.BrowserFactory.BrowserSelector.storyPaths(BrowserSelector.java:142) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at de.codecentric.jbehave.junit.monitoring.JUnitReportingRunner.getStoryPathsFromJUnitStories(JUnitReportingRunner.java:142) 
    at de.codecentric.jbehave.junit.monitoring.JUnitReportingRunner.<init>(JUnitReportingRunner.java:45) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
    at java.lang.reflect.Constructor.newInstance(Unknown Source) 
    at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104) 
    at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86) 
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) 
    at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26) 
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) 
    at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.<init>(JUnit4TestReference.java:33) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassReference.<init>(JUnit4TestClassReference.java:25) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:48) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:38) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) 

:이 반응을 얻고

Sep 23, 2016 5:43:33 PM org.openqa.selenium.remote.ProtocolHandshake createSession 
INFO: Attempting bi-dialect session, assuming Postel's Law holds true on the remote end 
1474632816231 Marionette INFO Listening on port 53647 
Sep 23, 2016 5:43:38 PM org.openqa.selenium.remote.ProtocolHandshake createSession 
INFO: Detected dialect: W3C 
Processing system properties {} 
Using controls EmbedderControls[batch=false,skip=false,generateViewAfterStories=true,ignoreFailureInStories=false,ignoreFailureInView=false,verboseFailures=false,verboseFiltering=false,storyTimeoutInSecs=300,threads=1] 

(BeforeStories) 


(AfterStories) 

Generating reports view to 'C:\Users\CMD_AUTOMATION\CDM_AUTOMATIOM\target\jbehave' using formats '[stats, console, txt, junitscenarioreporter]' and view properties '{reports=ftl/jbehave-reports-with-totals.ftl, decorateNonHtml=true}' 
Reports view generated with 0 stories (of which 0 pending) containing 0 scenarios (of which 0 pending) 

내가 구글에서 사물의 많은 노력 이틀에서이 붙어 있지만 할 수 없을있다 아직 풀어주세요.이 문제를 해결할 수 있도록 도와주세요.

답변

0

먼저 junit 러너가 리플렉션을 사용하여 작업을 수행하므로 jbehave 코어를 4.0에서 4.0.5로 업데이트하십시오.

storyPaths 메서드에서 embedder.runStoriesAsPaths를 호출 할 필요가 없으며 run 메서드에서 호출됩니다.

단지 storyPaths 방법이 추가 :

@Override 
public List<String> storyPaths() { 
    List<String> stories = new StoryFinder().findPaths(
      codeLocationFromClass(this.getClass()), "**/*.story", "**/excluded*.story"); 
    return stories; 
}