Thanks, Mauro.
On Fri, Jan 29, 2010 at 2:22 AM, Mauro Talevi
<[email protected]> wrote:
> The problem is that in your CalendarConverter you return a null object
> for the "none" date entry. Simply return an empty string and it will
> work for now.
>
> Cheers
>
> On 28/01/2010 15:52, Christopher Gardner wrote:
>> 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
>>>
>>>
>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> 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
>
>
>
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email