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

Histórias remotas #197

Open
estivalet opened this issue Mar 12, 2014 · 14 comments
Open

Histórias remotas #197

estivalet opened this issue Mar 12, 2014 · 14 comments

Comments

@estivalet
Copy link
Contributor

Descobri que eu tenho uma necessidade bem específica de poder executar histórias armazenadas remotamente.

http://jbehave.org/reference/stable/running-stories.html (ver seção Running Remote Stories)

Poderíamos incorporar isso ao framework. Tinha pensado em colocar propriedades no behave.properties (mais ou menos assim...)

behave.parser.remoteStories = true
behave.parser.remoteStoriesURL = http://jbehave.org/reference/examples/stories/

Não cheguei a avaliar o quanto teria que mudar no código fonte...

@botelhojp
Copy link
Contributor

@estivalet, para entendermos melhor a motivação e relevância da proposta cologo algumas questões que poderão amadurecer a ideia.

Quais os benefícios de ser ter um repositório remoto?
Exemplos?
Como é tratado o controle de versão das histórias?
Mas alguém teve esta necessidade na prática?

Espero que os demais membros possam se envolver na questão para chegarmos a uma proposta viável de ser absorvida ou não pelo framework.

@estivalet
Copy link
Contributor Author

@botelhojp, na verdade estou usando o dbehave para fazer carga de dados e por isso não precisaria manter um controle de versão das histórias. O benefício que eu vejo é que qualquer pessoa pode mudar o arquivo de história com os dados a serem carregados sem precisar ter o conhecimento do framework ou de como escrever uma história.

@estivalet
Copy link
Contributor Author

Também pode ser útil para aquelas pessoas que apenas escrevem histórias. Assim essas pessoas não precisam ter um projeto eclipse. No Serpro imagino que no futuro as histórias sejam escritas diretamente na ALM e apenas referenciadas no projeto, mas seria bom ter mais liberdade de poder ler as histórias de outros lugares (pasta compartilhada na rede, servidor, banco de dados, etc).

Aqui tem até um exemplo de ler histórias do github: http://mkolisnyk.blogspot.com.br/2013/05/java-jbehave-integration-with-github.html

@rogernobre
Copy link
Contributor

@botelhojp, já usei este recurso no RecPlay.

As histórias são lidas de uma wiki, alteradas por pessoas envolvidas no projeto.

Mas tem um porém, o mapeamento das telas ainda se dar usando o Page Object ou Page Map.

Então se a historia mudar tal que não precise alterar o mapeamento das telas, é bem produtivo as histórias estarem fora do projeto (ocorreu em algumas sprints não iniciais).

@rogernobre
Copy link
Contributor

Só precisa mudar o JBehaveParser para permitir carregar histórias a partir de URL.

@rogernobre
Copy link
Contributor

O ideal que no futuro (muito distante) que até o mapeamento dos objetos fosse representado em outra forma, de uma maneira que ao navegar pela aplicação qualquer pessoa envolvida no projeto ligaria os componentes da tela a história.

@rogernobre
Copy link
Contributor

Só ficaria no projeto, passos específicos e/ou suítes. O restante tudo remoto.

@estivalet
Copy link
Contributor Author

Não estou muito familiarizado com a parte do framework que faz a leitura dos histórias, mas acho que teria que alterar também o BehaveContext.java

Então podemos adicionar esse recurso no framework?

@rogernobre Você acha que consegue fazer a implementação semelhante ao do RecPlay?

@botelhojp
Copy link
Contributor

@estivalet, avalie possibilidade do seguinte experimento:

Na sua classe JUnit, antes de chamar o BehaveContext, baixe as histórias remotas para o classpath do projeto. Elas serão executadas normalmente como histórias locais.

Seria uma alternativa provisória que se bem sucedida pode ser incorporada sem que haja grandes mudanças estruturais no framework.

O que acha?

@rogernobre
Copy link
Contributor

Teria de mudar o BehaveContext também para aceitar URL no lugar dos caminho dos arquivos das historias.

@rogernobre
Copy link
Contributor

Mas diferente do RecPlay, aqui todas as historias seriam convertidas e na verdade seria "rodadas localmente" (uma cópia da historia remota).

@botelhojp
Copy link
Contributor

@rogernobre, isso seria num próximo passo.
Se em tempo de execução você baixar as histórias o teste funcionamento como se fosse local.

@juliancesar
Copy link
Contributor

@estivalet , você avançou no assunto?

@juliancesar juliancesar added this to the Releases Futuras milestone Mar 19, 2014
@estivalet
Copy link
Contributor Author

Não, infelizmente não estou com tempo disponível para mexer no framework. Como tinha pressa para resolver meu problema, acabei fazendo uma solução paralela ao framework para fazer carga de dados usando Ruby e Selenium.

De qualquer forma acho que seria interessante termos esse recurso.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants