-
Notifications
You must be signed in to change notification settings - Fork 53
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
Comments
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/a1.story"); |
Então agora é bug: Testes ===> @test
Log ===> 16:01:42,558 INFO (main) [BehaveContext]: -------------------------------- (BeforeStories) Running story stories/a1.storyConverted Scenario: Pesquisa Simples Failed to run story stories/a1.storyConverted Scenario: Pesquisa Simples2 (AfterStories) 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}' Reutilizei uma historia no final e ela não foi executada |
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); |
Bug denovo (executei até um "clean") Testes ===> @test
Log ===> 16:39:43,184 INFO (main) [BehaveContext]: -------------------------------- (BeforeStories) Running story stories/a1.storyConverted Scenario: Pesquisa Simples Failed to run story stories/a1.storyConverted Scenario: Pesquisa Simples2 (AfterStories) 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}' Reutilizei uma historia no final e ela não foi executada Salvar as historias anexadas com um novo formato ".txt" |
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? |
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. |
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. |
Marcus, da maneira que o Demoiselle Behave esta projetado, não posso rodar uma "story" duas vezes, entendeu? Pense assim: 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. |
Outra coisa como você acha que vai sair no relatório? |
corrigido: c5721dc |
Testes (Demoiselle Behave )===> 1.2.1-SNAPSHOT
17:25:33,759 INFO (main) [BehaveContext]: -------------------------------- (BeforeStories) Running story a1.storyConverted Scenario: Pesquisa Simples - a1 Running story a2.storyConverted Scenario: Pesquisa Simples2 - a2 (AfterStories) 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}' |
Testes (jBehave)===>
Processing system properties {} (BeforeStories) Running story a1.story (a1.story) Running story a2.story (a2.story) Running story a1.story (a1.story) Running story a2.story (a2.story) (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}' |
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]" |
No jbehave (4.0-beta-3) As histórias são executadas duas vezes, isto é, permitem o reuso de historias: |
O Julian acabou de fazer um commit que corrige o problema. atualiza e testa. |
Funcionou assim: @test
Assim não funciona: @test |
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"?
The text was updated successfully, but these errors were encountered: