Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Erro ao adicionar historia na lista de execução #85

Closed
rogernobre opened this issue Sep 6, 2013 · 17 comments
Closed

Erro ao adicionar historia na lista de execução #85

rogernobre opened this issue Sep 6, 2013 · 17 comments
Labels
Milestone

Comments

@rogernobre
Copy link
Contributor

Olá,

Fiz um teste simples (na versão 1.2.0-SNAPSHOT).

Reutilizei uma historia no final e ela não foi executada:

(Pretendia "rodar" a historia "a1" duas vezes, mas só rodou uma vez só)

Teste ===>

@test
public void testAllStories() throws Throwable {
eng.addStories("/stories/a1.story");
eng.addStories("/stories/a2.story");
eng.addStories("/stories/a1.story");
eng.run();
}

Log ===>

15:36:49,086 INFO (main) [BehaveContext]: --------------------------------
15:36:49,087 INFO (main) [BehaveContext]: Demoiselle Behave Iniciado
15:36:49,087 INFO (main) [BehaveContext]: --------------------------------
15:36:49,140 INFO (main) [JBehaveParser]: Configurando o JBehave
15:36:49,151 INFO (main) [JBehaveParser]: Iniciando o parser JBehave
15:36:49,151 INFO (main) [JBehaveParser]: Executando estorias: [stories/a1.storyConverted, stories/a2.storyConverted]
Processing system properties {}
Using controls EmbedderControls[batch=false,skip=false,generateViewAfterStories=true,ignoreFailureInStories=true,ignoreFailureInView=true,verboseFailures=true,verboseFiltering=false,storyTimeoutInSecs=3600,threads=1]

(BeforeStories)
15:36:49,230 INFO (main) [BeforeAfterSteps]: >>Iniciando Aplicação<<
log4j:WARN No appenders could be found for logger (org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

Running story stories/a1.storyConverted
Funcionalidade: Acesso
(stories/a1.storyConverted)
Narrative:
In order to a tela inicial apareceça para mim
As a visitante
I want to acessar o Google
Scenario: Acesso ao Google
Dado que vou para a tela "Tela de Busca"
Então será exibido "Google"

Scenario: Pesquisa Simples
Dado que vou para a tela "Tela de Busca"
Quando informo "Demoiselle Behave" no campo "Campo de Busca"
Então será exibido "https://github.com/demoiselle/behave1/" (FAILED)
(java.lang.AssertionError: Texto não encontrado na tela. Texto: https://github.com/demoiselle/behave1/)

Failed to run story stories/a1.storyConverted
java.lang.AssertionError: Texto não encontrado na tela. Texto: https://github.com/demoiselle/behave1/
at org.junit.Assert.fail(Assert.java:91)
at br.gov.frameworkdemoiselle.behave.runner.webdriver.ui.WebScreen.waitText(WebScreen.java:68)
at br.gov.frameworkdemoiselle.behave.runner.webdriver.ui.WebScreen.waitText(WebScreen.java:52)
at br.gov.frameworkdemoiselle.behave.parser.jbehave.CommonSteps.textVisible(CommonSteps.java:214)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.jbehave.core.steps.StepCreator$ParameterisedStep.perform(StepCreator.java:550)
at org.jbehave.core.embedder.StoryRunner$FineSoFar.run(StoryRunner.java:499)
at org.jbehave.core.embedder.StoryRunner.runStepsWhileKeepingState(StoryRunner.java:479)
at org.jbehave.core.embedder.StoryRunner.runScenarioSteps(StoryRunner.java:443)
at org.jbehave.core.embedder.StoryRunner.runCancellable(StoryRunner.java:305)
at org.jbehave.core.embedder.StoryRunner.run(StoryRunner.java:219)
at org.jbehave.core.embedder.StoryRunner.run(StoryRunner.java:180)
at org.jbehave.core.embedder.StoryManager$EnqueuedStory.call(StoryManager.java:229)
at org.jbehave.core.embedder.StoryManager$EnqueuedStory.call(StoryManager.java:201)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:679)
Running story stories/a2.storyConverted
Funcionalidade: Acesso
(stories/a2.storyConverted)
Narrative:
In order to a tela inicial apareceça para mim
As a visitante
I want to acessar o Google
Scenario: Acesso ao Google2
Dado que vou para a tela "Tela de Busca"
Então será exibido "Google"

Scenario: Pesquisa Simples2
Dado que vou para a tela "Tela de Busca"
Quando informo "Demoiselle Behave" no campo "Campo de Busca"
Então será exibido "https://github.com/demoiselle/behave/"

(AfterStories)
15:37:59,268 INFO (main) [BeforeAfterSteps]: >>Finalizando Aplicação<<

Generating reports view to '/home/01069360503/workspace-dbehave/teste/target/jbehave' using formats '[defaultstoryreport, console, html, stats]' and view properties '{defaultFormats=stats, decorateNonHtml=true, viewDirectory=view, decorated=ftl/jbehave-report-decorated.ftl, reports=ftl/jbehave-reports-with-totals.ftl, maps=ftl/jbehave-maps.ftl, navigator=ftl/jbehave-navigator.ftl, views=ftl/jbehave-views.ftl, nonDecorated=ftl/jbehave-report-non-decorated.ftl}'
Reports view generated with 3 stories (of which 0 pending) containing 6 scenarios (of which 0 pending)
Failures in reports view: 1 scenarios failed
15:37:59,505 INFO (main) [JBehaveParser]: Finalizando parser JBehave
15:37:59,505 INFO (main) [BehaveContext]: --------------------------------
15:37:59,506 INFO (main) [BehaveContext]: Demoiselle Behave Finalizado
15:37:59,506 INFO (main) [BehaveContext]: --------------------------------


Como ficou a regra ao adicionar uma historia para "execução"?

@botelhojp
Copy link
Contributor

Este comportamento é esperado. Os arquivos dentro de uma execução são executados uma unica vez, os cenários podem sim ser executados quantas vezes quiser.

Neste seu exemplo será necessário chamar duas vezes o método run

eng.addStories("/stories/a1.story");
eng.addStories("/stories/a2.story");
eng.run();

eng.addStories("/stories/a1.story");
eng.run();

@rogernobre
Copy link
Contributor Author

Então agora é bug:

Testes ===>

@test
public void testAllStories() throws Throwable {
eng.addStories("/stories/a1.story");
eng.addStories("/stories/a2.story");
eng.run();

    eng.addStories("/stories/a1.story");
    eng.run();      
}

Log ===>

16:01:42,558 INFO (main) [BehaveContext]: --------------------------------
16:01:42,558 INFO (main) [BehaveContext]: Demoiselle Behave Iniciado
16:01:42,558 INFO (main) [BehaveContext]: --------------------------------
16:01:42,612 INFO (main) [JBehaveParser]: Configurando o JBehave
16:01:42,623 INFO (main) [JBehaveParser]: Iniciando o parser JBehave
16:01:42,624 INFO (main) [JBehaveParser]: Executando estorias: [stories/a1.storyConverted, stories/a2.storyConverted]
Processing system properties {}
Using controls EmbedderControls[batch=false,skip=false,generateViewAfterStories=true,ignoreFailureInStories=true,ignoreFailureInView=true,verboseFailures=true,verboseFiltering=false,storyTimeoutInSecs=3600,threads=1]

(BeforeStories)
16:01:42,702 INFO (main) [BeforeAfterSteps]: >>Iniciando Aplicação<<
log4j:WARN No appenders could be found for logger (org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

Running story stories/a1.storyConverted
Funcionalidade: Acesso
(stories/a1.storyConverted)
Narrative:
In order to a tela inicial apareceça para mim
As a visitante
I want to acessar o Google
Scenario: Acesso ao Google
Dado que vou para a tela "Tela de Busca"
Então será exibido "Google"

Scenario: Pesquisa Simples
Dado que vou para a tela "Tela de Busca"
Quando informo "Demoiselle Behave" no campo "Campo de Busca"
Então será exibido "https://github.com/demoiselle/behave1/" (FAILED)
(java.lang.AssertionError: Texto não encontrado na tela. Texto: https://github.com/demoiselle/behave1/)

Failed to run story stories/a1.storyConverted
java.lang.AssertionError: Texto não encontrado na tela. Texto: https://github.com/demoiselle/behave1/
at org.junit.Assert.fail(Assert.java:91)
at br.gov.frameworkdemoiselle.behave.runner.webdriver.ui.WebScreen.waitText(WebScreen.java:68)
at br.gov.frameworkdemoiselle.behave.runner.webdriver.ui.WebScreen.waitText(WebScreen.java:52)
at br.gov.frameworkdemoiselle.behave.parser.jbehave.CommonSteps.textVisible(CommonSteps.java:214)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.jbehave.core.steps.StepCreator$ParameterisedStep.perform(StepCreator.java:550)
at org.jbehave.core.embedder.StoryRunner$FineSoFar.run(StoryRunner.java:499)
at org.jbehave.core.embedder.StoryRunner.runStepsWhileKeepingState(StoryRunner.java:479)
at org.jbehave.core.embedder.StoryRunner.runScenarioSteps(StoryRunner.java:443)
at org.jbehave.core.embedder.StoryRunner.runCancellable(StoryRunner.java:305)
at org.jbehave.core.embedder.StoryRunner.run(StoryRunner.java:219)
at org.jbehave.core.embedder.StoryRunner.run(StoryRunner.java:180)
at org.jbehave.core.embedder.StoryManager$EnqueuedStory.call(StoryManager.java:229)
at org.jbehave.core.embedder.StoryManager$EnqueuedStory.call(StoryManager.java:201)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:679)
Running story stories/a2.storyConverted
Funcionalidade: Acesso
(stories/a2.storyConverted)
Narrative:
In order to a tela inicial apareceça para mim
As a visitante
I want to acessar o Google
Scenario: Acesso ao Google2
Dado que vou para a tela "Tela de Busca"
Então será exibido "Google"

Scenario: Pesquisa Simples2
Dado que vou para a tela "Tela de Busca"
Quando informo "Demoiselle Behave" no campo "Campo de Busca"
Então será exibido "https://github.com/demoiselle/behave/"

(AfterStories)
16:02:43,265 INFO (main) [BeforeAfterSteps]: >>Finalizando Aplicação<<

Generating reports view to '/home/01069360503/workspace-dbehave/teste/target/jbehave' using formats '[defaultstoryreport, console, html, stats]' and view properties '{defaultFormats=stats, decorateNonHtml=true, viewDirectory=view, decorated=ftl/jbehave-report-decorated.ftl, reports=ftl/jbehave-reports-with-totals.ftl, maps=ftl/jbehave-maps.ftl, navigator=ftl/jbehave-navigator.ftl, views=ftl/jbehave-views.ftl, nonDecorated=ftl/jbehave-report-non-decorated.ftl}'
Reports view generated with 2 stories (of which 0 pending) containing 4 scenarios (of which 0 pending)
Failures in reports view: 1 scenarios failed
16:02:43,493 INFO (main) [JBehaveParser]: Finalizando parser JBehave
16:02:43,493 INFO (main) [BehaveContext]: --------------------------------
16:02:43,493 INFO (main) [BehaveContext]: Demoiselle Behave Finalizado
16:02:43,494 INFO (main) [BehaveContext]: --------------------------------


Reutilizei uma historia no final e ela não foi executada

@marvinsiq
Copy link
Contributor

Tenta assim

ArrayList<String> stories = new ArrayList<String>();
stories.add("/stories/a1.story");
stories.add("/stories/a2.story");
eng.run(stories);
stories = new ArrayList<String>();
stories.add("/stories/a1.story");
eng.run(stories);

@rogernobre
Copy link
Contributor Author

a1 storyconverted
a2 storyconverted

Bug denovo (executei até um "clean")

Testes ===>

@test
public void testAllStories() throws Throwable {
ArrayList stories = new ArrayList();
stories.add("/stories/a1.story");
stories.add("/stories/a2.story");
eng.run(stories);

    stories = new ArrayList<String>();
    stories.add("/stories/a1.story");
    eng.run(stories);       
}

Log ===>

16:39:43,184 INFO (main) [BehaveContext]: --------------------------------
16:39:43,184 INFO (main) [BehaveContext]: Demoiselle Behave Iniciado
16:39:43,184 INFO (main) [BehaveContext]: --------------------------------
16:39:43,238 INFO (main) [JBehaveParser]: Configurando o JBehave
16:39:43,250 INFO (main) [JBehaveParser]: Iniciando o parser JBehave
16:39:43,251 INFO (main) [JBehaveParser]: Executando estorias: [stories/a1.storyConverted, stories/a2.storyConverted]
Processing system properties {}
Using controls EmbedderControls[batch=false,skip=false,generateViewAfterStories=true,ignoreFailureInStories=true,ignoreFailureInView=true,verboseFailures=true,verboseFiltering=false,storyTimeoutInSecs=3600,threads=1]

(BeforeStories)
16:39:43,335 INFO (main) [BeforeAfterSteps]: >>Iniciando Aplicação<<
log4j:WARN No appenders could be found for logger (org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

Running story stories/a1.storyConverted
Funcionalidade: Acesso
(stories/a1.storyConverted)
Narrative:
In order to a tela inicial apareceça para mim
As a visitante
I want to acessar o Google
Scenario: Acesso ao Google
Dado que vou para a tela "Tela de Busca"
Então será exibido "Google"

Scenario: Pesquisa Simples
Dado que vou para a tela "Tela de Busca"
Quando informo "Demoiselle Behave" no campo "Campo de Busca"
Então será exibido "https://github.com/demoiselle/behave1/" (FAILED)
(java.lang.AssertionError: Texto não encontrado na tela. Texto: https://github.com/demoiselle/behave1/)

Failed to run story stories/a1.storyConverted
java.lang.AssertionError: Texto não encontrado na tela. Texto: https://github.com/demoiselle/behave1/
at org.junit.Assert.fail(Assert.java:91)
at br.gov.frameworkdemoiselle.behave.runner.webdriver.ui.WebScreen.waitText(WebScreen.java:68)
at br.gov.frameworkdemoiselle.behave.runner.webdriver.ui.WebScreen.waitText(WebScreen.java:52)
at br.gov.frameworkdemoiselle.behave.parser.jbehave.CommonSteps.textVisible(CommonSteps.java:214)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.jbehave.core.steps.StepCreator$ParameterisedStep.perform(StepCreator.java:550)
at org.jbehave.core.embedder.StoryRunner$FineSoFar.run(StoryRunner.java:499)
at org.jbehave.core.embedder.StoryRunner.runStepsWhileKeepingState(StoryRunner.java:479)
at org.jbehave.core.embedder.StoryRunner.runScenarioSteps(StoryRunner.java:443)
at org.jbehave.core.embedder.StoryRunner.runCancellable(StoryRunner.java:305)
at org.jbehave.core.embedder.StoryRunner.run(StoryRunner.java:219)
at org.jbehave.core.embedder.StoryRunner.run(StoryRunner.java:180)
at org.jbehave.core.embedder.StoryManager$EnqueuedStory.call(StoryManager.java:229)
at org.jbehave.core.embedder.StoryManager$EnqueuedStory.call(StoryManager.java:201)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:679)
Running story stories/a2.storyConverted
Funcionalidade: Acesso
(stories/a2.storyConverted)
Narrative:
In order to a tela inicial apareceça para mim
As a visitante
I want to acessar o Google
Scenario: Acesso ao Google2
Dado que vou para a tela "Tela de Busca"
Então será exibido "Google"

Scenario: Pesquisa Simples2
Dado que vou para a tela "Tela de Busca"
Quando informo "Demoiselle Behave" no campo "Campo de Busca"
Então será exibido "https://github.com/demoiselle/behave/"

(AfterStories)
16:40:49,197 INFO (main) [BeforeAfterSteps]: >>Finalizando Aplicação<<

Generating reports view to '/home/01069360503/workspace-dbehave/teste/target/jbehave' using formats '[defaultstoryreport, console, html, stats]' and view properties '{defaultFormats=stats, decorateNonHtml=true, viewDirectory=view, decorated=ftl/jbehave-report-decorated.ftl, reports=ftl/jbehave-reports-with-totals.ftl, maps=ftl/jbehave-maps.ftl, navigator=ftl/jbehave-navigator.ftl, views=ftl/jbehave-views.ftl, nonDecorated=ftl/jbehave-report-non-decorated.ftl}'
Reports view generated with 2 stories (of which 0 pending) containing 4 scenarios (of which 0 pending)
Failures in reports view: 1 scenarios failed
16:40:49,424 INFO (main) [JBehaveParser]: Finalizando parser JBehave
16:40:49,424 INFO (main) [BehaveContext]: --------------------------------
16:40:49,424 INFO (main) [BehaveContext]: Demoiselle Behave Finalizado
16:40:49,425 INFO (main) [BehaveContext]: --------------------------------


Reutilizei uma historia no final e ela não foi executada


Salvar as historias anexadas com um novo formato ".txt"

a1 story
a2 story

@marvinsiq
Copy link
Contributor

Eu não entendi por que você quer executar a mesma história duas vezes. O que tem no a1.story e o que tem no a2.story?

@botelhojp
Copy link
Contributor

De fato não é um cenário típico. Rogério, com você levantou a bola, tente depurar o código e propor uma alternativa.

@rogernobre
Copy link
Contributor Author

Concordo. De fato não é um cenário típico. Estava tentando lembrar qual a regra para execução e me deparei com este exemplo. Queria ver se diferenciava alguma coisa do caso de usar jbehave puro. Vanderson, vou ver aqui uma alternativa.

@rogernobre
Copy link
Contributor Author

Marcus, da maneira que o Demoiselle Behave esta projetado, não posso rodar uma "story" duas vezes, entendeu?

Pense assim:
a1.story => produz algo que vai ser consumido, ou seja, deixa o banco de dados da aplicação em um certo estado
a2.story => consome algo, ou seja, modifica o estado da aplicação

E teria um a3.story => verifica se algo foi produzido ou etc...

Ai eu chamaria novamente o a1.story.

Entendeu? (tem alternativas com reuso de cenário não de historia)

Seria algo do tipo depois do a1.story teria que rodar o a2.story e o a3.story em paralelo, a solução simples era repetir a execução do a1.story depois do a2.story, antes de rodar o a3.story.

@rogernobre
Copy link
Contributor Author

Outra coisa como você acha que vai sair no relatório?

@botelhojp
Copy link
Contributor

corrigido: c5721dc

@rogernobre
Copy link
Contributor Author

Testes (Demoiselle Behave )===>

1.2.1-SNAPSHOT

@Test
public void testAllStories() throws Throwable {
    ArrayList<String> stories = new ArrayList<String>();
    stories.add("/a1.story");
    stories.add("/a2.story");
    stories.add("/a1.story");
    stories.add("/a2.story");
    eng.run(stories);
}

17:25:33,759 INFO (main) [BehaveContext]: --------------------------------
17:25:33,759 INFO (main) [BehaveContext]: Demoiselle Behave Iniciado
17:25:33,759 INFO (main) [BehaveContext]: --------------------------------
17:25:33,811 INFO (main) [JBehaveParser]: Configurando o JBehave
17:25:33,822 INFO (main) [JBehaveParser]: Iniciando o parser JBehave
17:25:33,822 INFO (main) [JBehaveParser]: Executando estorias: [a1.storyConverted, a2.storyConverted]
Processing system properties {}
Using controls EmbedderControls[batch=false,skip=false,generateViewAfterStories=true,ignoreFailureInStories=true,ignoreFailureInView=true,verboseFailures=true,verboseFiltering=false,storyTimeoutInSecs=3600,threads=1]

(BeforeStories)
17:25:33,901 INFO (main) [BeforeAfterSteps]: >>Iniciando Aplicação<<
log4j:WARN No appenders could be found for logger (org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

Running story a1.storyConverted
Funcionalidade: Acesso
(a1.storyConverted)
Narrative:
In order to a tela inicial apareceça para mim
As a visitante
I want to acessar o Google
Scenario: Acesso ao Google - a1
Dado que vou para a tela "Tela de Busca"
Então será exibido "Google"

Scenario: Pesquisa Simples - a1
Dado que vou para a tela "Tela de Busca"
Quando informo "Demoiselle Behave" no campo "Campo de Busca"
Então será exibido "https://github.com/demoiselle/behave/"

Running story a2.storyConverted
Funcionalidade: Acesso
(a2.storyConverted)
Narrative:
In order to a tela inicial apareceça para mim
As a visitante
I want to acessar o Google
Scenario:

Scenario: Pesquisa Simples2 - a2
Dado que vou para a tela "Tela de Busca"
Quando informo "Demoiselle Behave" no campo "Campo de Busca"
Então será exibido "https://github.com/demoiselle/behave/"

(AfterStories)
17:25:58,705 INFO (main) [BeforeAfterSteps]: >>Finalizando Aplicação<<

Generating reports view to '/home/01069360503/workspace-dbehave/teste/target/jbehave' using formats '[defaultstoryreport, console, html, stats]' and view properties '{defaultFormats=stats, decorateNonHtml=true, viewDirectory=view, decorated=ftl/jbehave-report-decorated.ftl, reports=ftl/jbehave-reports-with-totals.ftl, maps=ftl/jbehave-maps.ftl, navigator=ftl/jbehave-navigator.ftl, views=ftl/jbehave-views.ftl, nonDecorated=ftl/jbehave-report-non-decorated.ftl}'
Reports view generated with 2 stories (of which 1 pending) containing 4 scenarios (of which 1 pending)
17:25:58,930 INFO (main) [JBehaveParser]: Finalizando parser JBehave
17:25:58,931 INFO (main) [BehaveContext]: --------------------------------
17:25:58,931 INFO (main) [BehaveContext]: Demoiselle Behave Finalizado
17:25:58,931 INFO (main) [BehaveContext]: --------------------------------

@rogernobre
Copy link
Contributor Author

Testes (jBehave)===>
4.0-beta-3

@Override
protected List<String> storyPaths() {
    return Arrays.asList("a1.story", "a2.story", "a1.story", "a2.story");      
}

Processing system properties {}
Using controls EmbedderControls[batch=false,skip=false,generateViewAfterStories=true,ignoreFailureInStories=true,ignoreFailureInView=true,verboseFailures=false,verboseFiltering=false,storyTimeoutInSecs=60,threads=1]

(BeforeStories)

Running story a1.story

(a1.story)
Scenario: A1
@given ->A1.1
Given Step A1.1
@when ->A1.2
When Step A1.2
@when ->A1.3
And Step A1.3
@then ->A1.4
Then Step A1.4

Running story a2.story

(a2.story)
Scenario: A2
@given ->A2.1
Given Step A2.1
@when ->A2.2
When Step A2.2
@when ->A2.3
And Step A2.3
@then ->A2.4
Then Step A2.4

Running story a1.story

(a1.story)
Scenario: A1
@given ->A1.1
Given Step A1.1
@when ->A1.2
When Step A1.2
@when ->A1.3
And Step A1.3
@then ->A1.4
Then Step A1.4

Running story a2.story

(a2.story)
Scenario: A2
@given ->A2.1
Given Step A2.1
@when ->A2.2
When Step A2.2
@when ->A2.3
And Step A2.3
@then ->A2.4
Then Step A2.4

(AfterStories)

Generating reports view to '/home/01069360503/workspace-dbehave/testes/target/jbehave' using formats '[stats, console, txt, html, xml]' and view properties '{defaultFormats=stats, decorateNonHtml=true, viewDirectory=view, decorated=ftl/jbehave-report-decorated.ftl, reports=ftl/jbehave-reports-with-totals.ftl, maps=ftl/jbehave-maps.ftl, navigator=ftl/jbehave-navigator.ftl, views=ftl/jbehave-views.ftl, nonDecorated=ftl/jbehave-report-non-decorated.ftl}'
Reports view generated with 2 stories (of which 0 pending) containing 2 scenarios (of which 0 pending)

@rogernobre
Copy link
Contributor Author

No Demoiselle Behave (1.2.1-SNAPSHOT)

As histórias não são executadas duas vezes, isto é, são convertidas corretamente em duas historias, mas não são executadas duas vezes, não permitindo o reuso de historias:

"Executando estorias: [a1.storyConverted, a2.storyConverted]"
...
Log acima

@rogernobre
Copy link
Contributor Author

No jbehave (4.0-beta-3)

As histórias são executadas duas vezes, isto é, permitem o reuso de historias:
...
Log acima

@botelhojp
Copy link
Contributor

O Julian acabou de fazer um commit que corrige o problema. atualiza e testa.

@rogernobre
Copy link
Contributor Author

Funcionou assim:

@test
public void testAllStories() throws Throwable {
ArrayList stories = new ArrayList();
stories.add("/a1.story");
stories.add("/a2.story");
eng.run(stories);

    stories = new ArrayList<String>();
    stories.add("/a1.story");
    stories.add("/a2.story");
    eng.run(stories);

Assim não funciona:

@test
public void testAllStories() throws Throwable {
ArrayList stories = new ArrayList();
stories.add("/a1.story");
stories.add("/a2.story");
stories.add("/a1.story");
stories.add("/a2.story");
eng.run(stories);
}
}

@rogernobre
Copy link
Contributor Author

paramimerro
O que fica para ver no futuro "distante" (eu acho) é o relatório de execução. Nem o jbehave apresenta o relatório corretamente. Não seria duas execuções?????

@juliancesar juliancesar added this to the 1.2.0 milestone May 8, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants