2014-11-13 2 views
5

Во-первых, я хотел бы сказать, что я разработчик .Net, который временно работает над проектом java. Я очень хорошо знаком с SpecFlow, и кажется, что JBehave очень похож.FileNotFoundException running JBehave (Maven Project, IntelliJ)

Я пытаюсь получить основную историю, чтобы работать в моем проекте, но все, что я пытаюсь сделать, кажется, не в состоянии с тем же исключением

java.io.FileNotFoundException: C:\Source\DataLoader\target\jbehave\storyDurations.props (The system cannot find the file specified) 
at java.io.FileInputStream.open(Native Method) 
at java.io.FileInputStream.<init>(FileInputStream.java:120) 
at java.io.FileReader.<init>(FileReader.java:55) 
at org.jbehave.core.reporters.TemplateableViewGenerator.storyDurations(TemplateableViewGenerator.java:123) 
at org.jbehave.core.reporters.TemplateableViewGenerator.generateReportsView(TemplateableViewGenerator.java:115) 
at org.jbehave.core.embedder.Embedder.generateReportsView(Embedder.java:249) 
at org.jbehave.core.embedder.Embedder.generateReportsView(Embedder.java:237) 
at org.jbehave.core.embedder.Embedder.runStoriesAsPaths(Embedder.java:213) 
at org.jbehave.core.junit.JUnitStories.run(JUnitStories.java:20) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) 
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) 
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) 
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) 
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) 
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) 
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) 
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) 
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) 
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) 
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) 
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) 
at org.junit.runners.ParentRunner.run(ParentRunner.java:309) 
at org.junit.runners.Suite.runChild(Suite.java:127) 
at org.junit.runners.Suite.runChild(Suite.java:26) 
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) 
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) 
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) 
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) 
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) 
at org.junit.runners.ParentRunner.run(ParentRunner.java:309) 
at org.junit.runner.JUnitCore.run(JUnitCore.java:160) 
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:74) 
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:211) 
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:67) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134) 

История и шаги сами по следующей ссылке:

https://blog.codecentric.de/en/2012/06/jbehave-configuration-tutorial/

со следующей конфигурацией:

import org.jbehave.core.junit.JUnitStories; 
import java.util.Arrays; 
import java.util.List; 

public class simpleBDD extends JUnitStories { 

public simpleBDD() { 
    super(); 
    this.configuredEmbedder().candidateSteps().add(new ExampleSteps()); 

    org.apache.log4j.BasicConfigurator.configure(); 
} 

@Override 
public List<String> storyPaths(){ 
    return Arrays.asList("JBehave/Math.story"); 
} 
} 

Это проект Maven, мой ПОМ выглядит любит это:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>com.dh</groupId> 
<artifactId>dataloader</artifactId> 
<version>1.0-SNAPSHOT</version> 

<dependencies> 
    <dependency> 
     <groupId>org.jbehave</groupId> 
     <artifactId>jbehave-core</artifactId> 
     <version>3.9.5</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.hadoop</groupId> 
     <artifactId>hadoop-mapreduce-client-core</artifactId> 
     <version>2.4.0</version> 
    </dependency> 
    <dependency> 
     <groupId>com.google.code.gson</groupId> 
     <artifactId>gson</artifactId> 
     <version>2.3</version> 
    </dependency> 
    <dependency> 
     <groupId>org.mockito</groupId> 
     <artifactId>mockito-all</artifactId> 
     <version>1.9.5</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.hbase</groupId> 
     <artifactId>hbase-client</artifactId> 
     <version>0.98.4-hadoop2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.hbase</groupId> 
     <artifactId>hbase-server</artifactId> 
     <version>0.98.4-hadoop2</version> 
    </dependency> 
    <dependency> 
     <groupId>com.couchbase.client</groupId> 
     <artifactId>couchbase-client</artifactId> 
     <version>1.2.3</version> 
    </dependency> 
</dependencies> 

Это исключение убивает меня, я пробовал много различных конфигураций, но по-прежнему ту же ошибку. Googling файл, на который он жалуется, не дает мне ответов ...

Кто-нибудь знает, что я делаю неправильно? (Пожалуйста, не берут на себя знание Java, Maven и IntelliJ)

+0

На самом деле, если вы посмотрите на исходный код на странице https://github.com/jbehave/jbehave-core/blob/master/jbehave-core/src/main/java/org/jbehave/core/reporters/TemplateableViewGenerator .java, что исключение поймано и зарегистрировано, но код разрешен для продолжения. Вы уверены, что на самом деле это не так? – CupawnTae

ответ

0

Я не знаю такого вопроса и JBehave всегда были в состоянии записать файл свойств сюжетные длительностей, когда Stroy получает exceuted.

Кроме того, ошибка, скорее всего, связана с ошибкой ОС или ошибкой в ​​пределах JBehave, таким образом, ОС Windows.

Проверьте необходимое разрешение и диск (C:\), который вы пытаетесь использовать, чтобы я мог предложить.

2

Решенный! Проблема была вызвана тем, что мой .story-файл не был скопирован в целевую папку тестовых классов, поскольку он не был в папке ресурсов. Поскольку JBehave не смог найти файл истории, storyDurations.props не был создан, поскольку истории не были запущены.

Как только я переместил файл .story в ресурсы, все шло отлично.

0

Я пробовал так много способов, но до сих пор не решил свою проблему. Наконец, я удалил пробелы и подстановочные знаки с моего пути (включая имена папок), а затем разрешил мне выполнить Test Runner.