2014-11-13 19 views
5

In primo luogo, vorrei dire che sono uno sviluppatore .Net che sta lavorando temporaneamente su un progetto java. Ho molta familiarità con SpecFlow e sembra che JBehave sia molto simile.FileNotFoundException esegue JBehave (Maven Project, IntelliJ)

Sto cercando di ottenere una storia di base per l'esecuzione nel mio progetto, ma tutto quello che cerco di fare sembra non riuscire con la stessa eccezione

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) 

La storia ei passi stessi sono dal seguente link:

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

con la seguente configurazione:

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"); 
} 
} 
.210

Questo è un progetto Maven, il mio pom sembra piace questo: molte configurazioni diverse

<?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> 

Questa eccezione mi sta uccidendo, che ho provato, ma ancora lo stesso errore. Cercare su Google il file di cui si lamenta non mi dà risposte ...

Qualcuno ha idea di cosa sto facendo male? (Si prega di assumere alcuna conoscenza di Java, Maven e IntelliJ)

+0

In realtà, se si guarda il codice sorgente su https://github.com/jbehave/jbehave-core/blob/master/jbehave-core/src/main/java/org/jbehave/core/reporters/TemplateableViewGenerator .java quell'eccezione viene catturata e registrata ma il codice può continuare. Sei sicuro che stia davvero fallendo? – CupawnTae

risposta

0

Io non sono a conoscenza di tale problema e JBehave sono stati sempre in grado di scrivere il file di proprietà durate storia quando lo Stroy viene exceuted.

Inoltre, l'errore sembra essere specifico del sistema operativo più che un bug o un problema all'interno di JBehave, quindi un sistema operativo Windows.

Verificare l'autorizzazione necessaria e il disco (C:\) si sta cercando il meglio che posso suggerire.

2

Risolto! Il problema è stato causato dal fatto che il mio file .story non è stato copiato nella cartella delle classi di test di destinazione poiché non si trovava nella cartella delle risorse. Poiché JBehave non è riuscito a trovare il file della storia, storyDurations.props non è stato creato poiché non sono state pubblicate storie.

Una volta spostato il file .story in risorse, tutto andava bene.

0

Ho provato tanti modi, ma ancora non ho risolto il mio problema. Alla fine ho rimosso spazi e caratteri jolly dal mio percorso (compresi i nomi delle cartelle), quindi mi ha permesso di eseguire Test Runner.

Problemi correlati