pedido de ajuda para criar plugin easyb-test
02/04/2008 00:00
0
Galera, não sei se vocês conhecem o easyb (http:/www.easyb.org)
escrevi um post no meu blog a pouco tempo sobre ele ...

Pois é, estou criando um plugin para possibilitar testar o código de uma aplicaçao grails utilizando o easyb, ou seja, utilizar BDD no grails
para isto preciso de dentro de uma classe groovy que é um plugin do easyb inicializar o contexto do grails, e estou tendo alguns problemas para implementar isto.
na verdade acho que estou quase la, mas esta dando um erro meio maluco em dizendo que MetaClass não tem uma propriedade ...

o código do plugin esta hospedado no github
<!-- m --><a class="postlink" href="http://github.com/urubatan/easybtest/tree/master">http://github.com/urubatan/easybtest/tree/master</a><!-- m -->

Agradeço qualquer ajuda, acho que este plugin vai beneficiar a todos <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
dou direito de commit no projeto para quem quiser dar uma ajuda nisto ...
Tags: Ferramentas/Plugins


0
Era meu próximo projeto de plugin. <!-- s:-) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":-)" title="Smile" /><!-- s:-) -->

Urubatan, acho que não é razoável tentar iniciar o contexto a partir do seu plugin porque isso implica ir direto na api do Grails, que pode - e certamente vai - mudar.

Por que vc não faz o EasyTest se integrar com TestApp para, em uma target apenas, executar todos os testes? Assim vc já teria o contexto iniciado para vc. Se não for o caso, bom, acho melhor usar os scripts já existentes (loadApp, configureApp do Bootstrap) para iniciar a aplicação.

valeuz...


0
o problema é o runner do easyb que é executado com um fork da jvm ...
e o testapp faz altas gambiarras pra rodar os junit ...
como a API do easyb é bem diferente da do junit não tem como reaproveitar o TestApp
e a única opção para não usar o fork da jvm é reescrever o BehaviorRunner para adicionar os bindings do easyb nos testes <!-- s:( --><img src="{SMILIES_PATH}/icon_sad.gif" alt=":(" title="Sad" /><!-- s:( -->

acho que a forma mais fácil é inicializar o contexto do grails mesmo ...
eu ja escrevi quase todo o código para isto, falta bem pouca coisa <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
03/04/2008 00:00


0
[quote=&quot;urubatan&quot;]o problema é o runner do easyb que é executado com um fork da jvm ...[/quote]
Hum... não seria o caso de submeter um patch para a task do easyb receber um parâmetro (para fork ou não)?
[quote=&quot;urubatan&quot;]e o testapp faz altas gambiarras pra rodar os junit ...
como a API do easyb é bem diferente da do junit não tem como reaproveitar o TestApp[/quote]
Rodrigo, no grails (ainda) não é possível fazer isso:
grails test-app easy-test outra-target

Isso faz falta em um servidor de integração continua (nada muito complicado de transpassar com um mínimo de conhecimento sobre o Ant,). O mecanismo é, então, criar gant scripts para &quot;ligar&quot; as tarefas via &quot;depends&quot; de modo que, para executar todos os testes/stories/specifications, eu precise executar apenas um target. Por isso falei sobre o easy-test depender do test-app.

valeuz...


0
Rodrigo, parabéns pela iniciativa.

Li o post, no seu blog, sobre o easyb com Java, e achei muito interessante.
Fácil de usar e código limpo.
Usá-lo com grails seria ótimo!
07/04/2008 00:00


0
o plugin ja ta quase pronto, ja esta rodando os testes beleza ...
vou usar ele na minha palestra no FISL, mas quero ver se libero uma versão publica para testes ainda esta semana <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
07/04/2008 00:00


0
Plugin pronto (pelo menos a primeira versão rodando o suficiente para tornar publico)
Escrevi um post no meu blog em ingles sobre o plugin: <!-- m --><a class="postlink" href="http://www.urubatan.info/2008/04/easyb-test-grails-tests-made-easy-in-a-way-your-boss-can-read/">http://www.urubatan.info/2008/04/easyb- ... -can-read/</a><!-- m -->
22/04/2008 00:00


0
[quote=&quot;urubatan&quot;]Plugin pronto (pelo menos a primeira versão rodando o suficiente para tornar publico)
Escrevi um post no meu blog em ingles sobre o plugin: <!-- m --><a class="postlink" href="http://www.urubatan.info/2008/04/easyb-test-grails-tests-made-easy-in-a-way-your-boss-can-read/">http://www.urubatan.info/2008/04/easyb- ... -can-read/</a><!-- m -->[/quote]

Muito bom <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
Já estou baixando para conferir!

Parabéns pelo trabalho! <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->
22/04/2008 00:00


0
Eu encontrei este erro ao utilizar:

~/project/src/myproject $  grails easyb-test
Welcome to Grails 1.1 - http&#58;//grails.org/
Licensed under Apache Standard License 2.0
Grails home is set to&#58; /opt/grails

Base Directory&#58; ~/projects/myproject/src/myproject
Running script ~/.grails/1.1/projects/myproject/plugins/easybtest-0.2/scripts/EasybTest.groovy
Error executing script EasybTest&#58; startup failed, EasybTest&#58; 1&#58; unable to resolve class easyb.grails.GrailsBindingManager
@ line 1, column 1.EasybTest&#58; 2&#58; unable to resolve class easyb.grails.IntegrationEnvironmentDecorator
@ line 2, column 1.EasybTest&#58; 77&#58; unable to resolve class easyb.grails.IntegrationEnvironmentDecorator
@ line 77, column 81.EasybTest&#58; 84&#58; unable to resolve class easyb.grails.GrailsBindingManager
@ line 84, column 5.EasybTest&#58; 86&#58; unable to resolve class easyb.grails.GrailsBindingManager
@ line 86, column 5.
5 errors

org.codehaus.groovy.control.MultipleCompilationErrorsException&#58; startup failed, EasybTest&#58; 1&#58; unable to resolve class easyb.grails.GrailsBindingManager
@ line 1, column 1.EasybTest&#58; 2&#58; unable to resolve class easyb.grails.IntegrationEnvironmentDecorator
@ line 2, column 1.EasybTest&#58; 77&#58; unable to resolve class easyb.grails.IntegrationEnvironmentDecorator
@ line 77, column 81.EasybTest&#58; 84&#58; unable to resolve class easyb.grails.GrailsBindingManager
@ line 84, column 5.EasybTest&#58; 86&#58; unable to resolve class easyb.grails.GrailsBindingManager
@ line 86, column 5.
5 errors

at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java&#58;296)
at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java&#58;816)
at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java&#58;466)
at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java&#58;445)
at gant.Gant.compileScript(Gant.groovy&#58;506)
at gant.Gant.this$2$compileScript(Gant.groovy)
at gant.Gant$_closure1.doCall(Gant.groovy&#58;121)
at gant.Gant$_closure1.call(Gant.groovy)
at gant.Gant.loadScript(Gant.groovy&#58;250)
at gant.Gant$loadScript.callCurrent(Unknown Source)
at gant.Gant.loadScript(Gant.groovy&#58;233)


Provavelmente deve ser porque não adicionei o easyb ao classpath do sistema, porém creio que seria mais interessante que o plugin verificasse isso ao instalar (coisa que ele fez) e caso não tenha instalado no sistema ele instalar pra mim no próprio projeto, ao invés de pedir para eu remover o plugin <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->

Quando eu utilizei o plugin com o groovy, adicionei via Netbeans, e agora não estou utilizando IDE, sendo assim, como proceder?

Obrigado.
04/04/2009 00:00


0
olha, só se for algum conflito de versão ...
eu instalei o grails,
usei o groovy que vem junto com o grails
criei a app do grails
instalei o plugin e tudo funciona ...
06/04/2009 00:00


0
Será que você adicionou os jars do easyb no classpath do sistema antes de instalar o plugin? eu não fiz porque queria só adicionar ao classpath da aplicação como eu sempre fiz no netbeans...
06/04/2009 00:00


0
nops, não adicionei não ...
mas como eu disse, é possível que seja algum problema de versões, o plugin só foi testado com o grails 1.0, não com o 1.1
06/04/2009 00:00


0
Provavelmente é isso então, você prefere que seja adicionado o easyb ao classpath do sistema para realizar testes? Ou então prefere consertar para que o funcionamento se dê de acordo com a versão anterior?
07/04/2009 00:00


0
derepente tu tenta uma versão mais nova do plugin ...
o pessoal do easyb assumiu o desenvolvimento dele, que agora esta no SVN do easyb <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
07/04/2009 00:00


0
A cara, vou deixar pra eles atualizarem então, tem como mandar aqui o link de onde eu posso reportar o bug (ou coisa do tipo), tks
07/04/2009 00:00


0
Urubatan , eu acho que era o pacote da minha distribuição que tava meio bugado, saíram alguns updates e eu reinstalei o plugin hoje (só rodando grails install-plugin easytest) e nem to acreditando :~

loading security config ...
1 behavior run
0 total failures

Desculpa o encomodo, como eu falei, devia ser problema no pacote da distribuição <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->~
08/04/2009 00:00



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto