In the embedder controls you've configured to ignore failures. Set: doIgnoreFailureInStories(false)
> On 18 May 2014, at 17:45, Ramiro Oliva Navas <ramiro.ol...@aytos.es> wrote: > > Source code: > > MySteps.java > > package com.ramirooliva.steps; > > import java.util.ArrayList; > > 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.junit.Assert; > > public class MySteps { > > ArrayList<String> miLista; > > @Given("Una lista de nombres") > public void dadaUnaListaDeNombres() { > miLista = new ArrayList<String>(); > } > > @Given("La lista contiene solo Aytos") > public void laListaContieneAytos() { > miLista.add("Aytos"); > Assert.assertTrue("El array no tiene 1 > nombre", miLista.size() == 1); > } > > @When("Se agrega un nombre") > public void implementStep() { > miLista.add("Soluciones"); > miLista.add("Soluciones"); > } > > @Then("Deben haber $cuenta nombres") > public void happyStep(@Named("cuenta") int cuenta) { > Assert.assertTrue("El array NO tiene " + > cuenta + " nombres", miLista.size() == cuenta); > } > > } > > > my.story: > > Scenario: A scenario with some pending steps > > Given Una lista de nombres > And La lista contiene solo Aytos > When Se agrega un nombre > Then Deben haber 2 nombres > > > MyStories.java > > package com.ramirooliva; > > import static org.jbehave.core.io.CodeLocations.codeLocationFromClass; > import static org.jbehave.core.reporters.Format.CONSOLE; > import static org.jbehave.core.reporters.Format.HTML; > import static org.jbehave.core.reporters.Format.TXT; > import static org.jbehave.core.reporters.Format.XML; > > import java.text.SimpleDateFormat; > import java.util.List; > > import org.jbehave.core.Embeddable; > import org.jbehave.core.configuration.Configuration; > import org.jbehave.core.configuration.MostUsefulConfiguration; > import org.jbehave.core.i18n.LocalizedKeywords; > import org.jbehave.core.io.CodeLocations; > import org.jbehave.core.io.LoadFromClasspath; > import org.jbehave.core.io.StoryFinder; > import org.jbehave.core.junit.JUnitStories; > import org.jbehave.core.model.ExamplesTableFactory; > import org.jbehave.core.parsers.RegexStoryParser; > import org.jbehave.core.reporters.StoryReporterBuilder; > import org.jbehave.core.steps.InjectableStepsFactory; > import org.jbehave.core.steps.InstanceStepsFactory; > import org.jbehave.core.steps.ParameterConverters; > import org.jbehave.core.steps.ParameterConverters.DateConverter; > import org.jbehave.core.steps.ParameterConverters.ExamplesTableConverter; > import org.junit.Test; > > import com.ramirooliva.steps.MySteps; > > /** > * <p> > * {@link Embeddable} class to run multiple textual stories via JUnit. > * </p> > * <p> > * Stories are specified in classpath and correspondingly the {@link > LoadFromClasspath} story loader is configured. > * </p> > */ > public class MyStories extends JUnitStories { > > public MyStories() { > > configuredEmbedder().embedderControls().doGenerateViewAfterStories(true).doIgnoreFailureInStories(true) > > .doIgnoreFailureInView(true).useThreads(2).useStoryTimeoutInSecs(60); > } > > @Override > public Configuration configuration() { > Class<? extends Embeddable> embeddableClass = this.getClass(); > // Start from default ParameterConverters instance > ParameterConverters parameterConverters = new ParameterConverters(); > // factory to allow parameter conversion and loading from external > resources (used by StoryParser too) > ExamplesTableFactory examplesTableFactory = new > ExamplesTableFactory(new LocalizedKeywords(), new > LoadFromClasspath(embeddableClass), parameterConverters); > // add custom converters > parameterConverters.addConverters(new DateConverter(new > SimpleDateFormat("yyyy-MM-dd")), > new ExamplesTableConverter(examplesTableFactory)); > return new MostUsefulConfiguration() > .useStoryLoader(new LoadFromClasspath(embeddableClass)) > .useStoryParser(new RegexStoryParser(examplesTableFactory)) > .useStoryReporterBuilder(new StoryReporterBuilder() > > .withCodeLocation(CodeLocations.codeLocationFromClass(embeddableClass)) > .withDefaultFormats() > .withFormats(CONSOLE, TXT, HTML, XML)) > .useParameterConverters(parameterConverters); > } > > @Override > public InjectableStepsFactory stepsFactory() { > return new InstanceStepsFactory(configuration(), new MySteps()); > } > > @Override > protected List<String> storyPaths() { > return new > StoryFinder().findPaths(codeLocationFromClass(this.getClass()), "**/*.story", > "**/excluded*.story"); > > } > > @Test > public void run() throws Throwable { > super.run(); > } > > } > > De: Ramiro Oliva Navas [mailto:ramiro.ol...@aytos.es] > Enviado el: domingo, 18 de mayo de 2014 17:42 > Para: dev@jbehave.codehaus.org > Asunto: [jbehave-dev] Assertion fails not captured by JUnit in Eclipse? > > Hi ! > > Could any soul please tell me what I’m doing wrong? > > I have a simple HelloWorld project using jBehave for which even stories run > ok and errors are shown in the Eclipse console, no assertion failure is > captured in the JUnit window within Eclipse IDE. > > Attached snapshot: > > <image001.png>