Mauro,

I can't give the real version of the Steps class, as it has
significant proprietary information, but attached are 2 files: A
.scenario file and a CalendarConverter.java file that converts string
dates in the form of mm/dd/yyyy or "none" into an appropriate Calendar
representation.  Note in the .scenario file the parameter "<outcome>"
is quoted.  In the Steps class those quotes are escaped.



On Thu, Jan 28, 2010 at 9:16 AM, Mauro Talevi
<[email protected]> wrote:
> Hi Christopher,
>
> the problem occurs because it tries to escape HTML chars from the values
> of the examples table that it does not find (defaulting to null).   The
> reason it does not fail for CONSOLE and TXT is that only HTML and XML
> reporters escape chars.
>
> Opened issue to improve resilience:
>
> http://jira.codehaus.org/browse/JBEHAVE-237
>
> But if could you please forward the scenario you're using we can help
> you sort out the data issues to get it working properly in the first place.
>
> Cheers
>
> On 27/01/2010 22:10, Christopher Gardner wrote:
>> I created my own AbstractScenario class to handle the configuration of
>> the scenario filenames, pending steps, and reports.  If I specify only
>> CONSOLE and TXT, reports work as expected: The jbehave-reports
>> directory is generated with the .txt and .stats files.  If, however, I
>> add HTML the builder, I receive an exception:
>>
>> java.lang.NullPointerException
>>       at 
>> org.jbehave.scenario.reporters.PrintStreamScenarioReporter$1.transform(PrintStreamScenarioReporter.java:245)
>>       at 
>> org.apache.commons.collections.CollectionUtils.transform(CollectionUtils.java:433)
>>       at 
>> org.jbehave.scenario.reporters.PrintStreamScenarioReporter.escape(PrintStreamScenarioReporter.java:252)
>>       at 
>> org.jbehave.scenario.reporters.PrintStreamScenarioReporter.escapeAll(PrintStreamScenarioReporter.java:230)
>>       at 
>> org.jbehave.scenario.reporters.PrintStreamScenarioReporter.format(PrintStreamScenarioReporter.java:222)
>>       at 
>> org.jbehave.scenario.reporters.PrintStreamScenarioReporter.beforeExamples(PrintStreamScenarioReporter.java:188)
>>       at 
>> org.jbehave.scenario.reporters.DelegatingScenarioReporter.beforeExamples(DelegatingScenarioReporter.java:80)
>>       at 
>> org.jbehave.scenario.ScenarioRunner.runExamplesTableScenario(ScenarioRunner.java:94)
>>       at org.jbehave.scenario.ScenarioRunner.run(ScenarioRunner.java:63)
>>       at org.jbehave.scenario.ScenarioRunner.run(ScenarioRunner.java:48)
>>       at org.jbehave.scenario.ScenarioRunner.run(ScenarioRunner.java:38)
>>       at 
>> org.jbehave.scenario.AbstractScenario.runScenario(AbstractScenario.java:75)
>>       at 
>> org.jbehave.scenario.JUnitScenario.runScenario(JUnitScenario.java:54)
>>       at 
>> org.jbehave.scenario.JUnitScenario.testScenario(JUnitScenario.java:84)
>>       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:592)
>>       at junit.framework.TestCase.runTest(TestCase.java:168)
>>       at junit.framework.TestCase.runBare(TestCase.java:134)
>>       at junit.framework.TestResult$1.protect(TestResult.java:110)
>>       at junit.framework.TestResult.runProtected(TestResult.java:128)
>>       at junit.framework.TestResult.run(TestResult.java:113)
>>       at junit.framework.TestCase.run(TestCase.java:124)
>>       at junit.framework.TestSuite.runTest(TestSuite.java:232)
>>       at junit.framework.TestSuite.run(TestSuite.java:227)
>>       at 
>> org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:79)
>>       at 
>> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
>>       at 
>> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
>>       at 
>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
>>       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)
>>
>>
>> Here is my AbstractScenario.  Subclasses are responsible for providing
>> their class objects and instantiating CandidateSteps.
>>
>> package base;
>>
>> import static 
>> org.jbehave.scenario.reporters.ScenarioReporterBuilder.Format.*;
>> import org.jbehave.scenario.*;
>> import org.jbehave.scenario.errors.*;
>> import org.jbehave.scenario.parser.*;
>> import org.jbehave.scenario.reporters.FilePrintStreamFactory;
>> import org.jbehave.scenario.reporters.ScenarioReporter;
>> import org.jbehave.scenario.reporters.ScenarioReporterBuilder;
>> import org.jbehave.scenario.steps.*;
>>
>> public abstract class AbstractScenario extends JUnitScenario {
>>
>>     protected static ScenarioNameResolver converter = new
>> UnderscoredCamelCaseResolver(".scenario");
>>
>>     public AbstractScenario(final Class<? extends RunnableScenario>
>> scenarioClass, CandidateSteps... candidateSteps) {
>>         super(new PropertyBasedConfiguration() {
>>             @Override
>>             public ScenarioDefiner forDefiningScenarios() {
>>                 return new ClasspathScenarioDefiner(converter, new
>> PatternScenarioParser(keywords()));
>>             }
>>
>>             @Override
>>             public PendingErrorStrategy forPendingSteps() {
>>                 return PendingErrorStrategy.FAILING;
>>             }
>>
>>             @Override
>>             public ScenarioReporter forReportingScenarios() {
>>                 return new ScenarioReporterBuilder(new
>> FilePrintStreamFactory(scenarioClass, converter))
>>                 .with(CONSOLE)
>>                 .with(HTML)
>>                 .with(TXT)
>>                 .build();
>>             }
>>         }, candidateSteps);
>>     }
>> }
>>
>> Any suggestions as to what I'm doing wrong?
>>
>> Thanks.
>>
>> ---------------------------------------------------------------------
>> To unsubscribe from this list, please visit:
>>
>>     http://xircles.codehaus.org/manage_email
>>
>>
>>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>    http://xircles.codehaus.org/manage_email
>
>
>

Attachment: claims.scenario
Description: Binary data

Attachment: CalendarConverter.java
Description: Binary data

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email

Reply via email to