My idea won't work. I don't know if it is possible to set the embedder
earlier by JBehave so that he can be used in the embeddable constructor.


2013/10/8 Hans Schwäbli <[email protected]>

> I found a solution. Good that it is open source, so I can look into the
> code to find answers.
>
> As it seems "org.jbehave.core.Embeddable.useEmbedder(Embedder)" is called
> a bit late in the execution process. If I overwrite
> "org.jbehave.core.junit.JUnitStories.run()" and get the system properties
> from there, then it works.
>
> Maybe useEmbedder(...) could be called earlier by JBehave. The embeddable
> instances are created in the method:
> org.jbehave.core.embedder.Embedder.embeddables(List<String>,
> EmbedderClassLoader)
>
> An Embedder object could be passed into this method and right after
> instantiating a new embeddable, the method "useEmbedder(...)" could be
> called. Then one could use configuredEmbedder() even in the constructor of
> his embeddable class without getting just an inital embedder. This is just
> a possible suggestion, I didn't analyse it completely.
>
>
> 2013/10/8 Hans Schwäbli <[email protected]>
>
>> I set a system property according to this description:
>> http://jbehave.org/reference/stable/maven-goals.html
>>
>> But I could not figure out how to use it then, starting it with Maven
>> goals clean and integration-test.
>>
>> I extend JUnitStories. In that class I try to access the property in the
>> constructor with:
>> String dryRun =
>> configuredEmbedder().systemProperties().getProperty("dry.run");
>>
>> But "dryRun" is null although it is really set by Maven if I look into
>> the console log.
>>
>> The confgured embedder is not the same like the configuration in the POM
>> file for some reason but a kind of initial default embedder.
>>
>> System.getProperty("dry.run") does not work either.
>>
>> How to get to the fruit?
>>
>
>

Reply via email to