From: CogniPC C. <co...@gm...> - 2009-08-19 15:59:46
|
I new the ManageFamilly and remove the annotation to use it like an EJB. And like you said, outside the remote server it's running. 2009/8/19 John W. Lewis <Joh...@sa...> > > > What class did you new? If you newed the bean implementation, then the > test would not have communicated with anything outside the test process. It > would not be communicating with the remote server. So, it would be > expected to work. > > > > John > > > > *From:* CogniPC CogniPC [mailto:co...@gm...] > *Sent:* Wednesday, August 19, 2009 10:51 AM > > *To:* John W. Lewis > *Cc:* Chris van Es; cob...@li... > *Subject:* Re: [Cobertura-devel] Cover Test on Ejb - Test de couverture > sur des EJB > > > > Thanks for your answer, but now I'm sure than the problem come from the > jndi instantiation. > I run the same test using a *new *instead of using the *initialcontext *and > the cover was fine. > > So the answer is easy, we can't do any cover test on EJB3 Remote. > > Thanks for all your help. > > 2009/8/12 John W. Lewis <Joh...@sa...> > > > > The process that executes the implementation of addPere(Pere) is the > process that must load the instrumented classes. Once it does, it will > automatically create a cobertura.ser file in its working directory. So, > make sure you copy the cobertura.ser file that is created with > <cobertura-instrument> into that working directory before starting the > process. After running your tests, shut down the process and run > <cobertura-report> on the cobertura.ser file that is in the working > directory. > > > > You can optionally merge the cobertura.ser file with the cobertura.ser file > that is updated with the test process with <cobertura-merge>. > > > > John > > > > *From:* CogniPC CogniPC [mailto:co...@gm...] > *Sent:* Wednesday, August 12, 2009 5:39 PM > *To:* John W. Lewis > *Cc:* Chris van Es; cob...@li... > > > *Subject:* Re: [Cobertura-devel] Cover Test on Ejb - Test de couverture > sur des EJB > > > > Effectively, I have to speak about my environment. > > So, we use EJB3 with GlassFish2.1 and Top link for the JPA, and Mysql5 for > the database. I work under NetBean6.5. > > I use Junit 4.5 for my Junit test and Cobertura 1.9.2. > > The call to *ejb.addPere(Pere)* is a method define inside an EJB Remote > deployed on the same local machine. But, to reach the EJB deployed, I use > jndi context. So yes, the method addPere(Pere) called inside the Test, is > execute outside the test process. > > I attach the two files ManageFamilyBean and ManageFamilyTest which are > simple class to test my futur test plateform. > > ManageFamilyBean, is the EJB define Remote. And ManageFamilyTest is the > Junit test called using cobertura. > I don't know if I'm really clear, I can do a UML Diagram if you prefer. > Jerem > > 2009/8/12 John W. Lewis <Joh...@sa...> > > > > You talk about a remote EJB. What is the EJB deployed in? Does the the > call to ejb.addPere(pere) result in communication with a process that runs > outside the test process? > > > > > > *From:* CogniPC CogniPC [mailto:co...@gm...] > *Sent:* Wednesday, August 12, 2009 9:11 AM > *To:* Chris van Es > *Cc:* cob...@li... > *Subject:* Re: [Cobertura-devel] Cover Test on Ejb - Test de couverture > sur des EJB > > > > Hello thanks for your help, but I'm sure of my .ser. > > It was my first error, so I fixed it liked this: > *<junit errorproperty="tests.failed" failureproperty="tests.failed" > fork="true" > > <!--Without this key, it can't instrument the class--> > <sysproperty key="net.sourceforge.cobertura.datafile" > file="${basedir}/cobertura.ser" /> > <classpath location="${dir.cover.jar}/cobertura.jar"/> > <classpath location="${dir.cover.classes}" /> > ...... > </junit>* > I already resolved it for my libraries. And I can see it inside my > directory *${basedir}/cobertura.ser.* > > Like I said, I think the problem come from the instantiation of my EJB3, > than I do like this: > *public class ManageFamilyBeanTest { > private static ManageFamilyRemote ejb; > @BeforeClass > public static void setUpClass() throws Exception { > InitialContext ic = new InitialContext(); > try { > ejb = (ManageFamilyRemote) > ic.lookup(ManageFamilyRemote.class.getName()); > } catch (NamingException e) { > fail("NamingException" + e); > } > } > ......... > ejb.addPere(pere); > ............... > }* > > I believe than cobertura can't see a new *ManageFamily()*, so maybe > cobertura think than there isn't any instantiation. > What do you think? > Jeremie > > 2009/8/12 Chris van Es <Chr...@op...> > > Sounds like you’re using the wrong .ser coverage data file, the default > location is in the current directory i.e. where you’re ant build script is > located so if you’re storing it somewhere else make sure your ant tasks know > about it. > > > > Chris. > > > > *From:* CogniPC CogniPC [mailto:co...@gm...] > *Sent:* 11 August 2009 18:50 > *To:* cob...@li... > *Subject:* [Cobertura-devel] Cover Test on Ejb - Test de couverture sur > des EJB > > > > Hi everybody, > Currently, I'm writing an automatic test plateform for my Java projects. > This projects include some libraries, EJB3, and Web application (JSF). > > I'm using cobertura to make my cover test. Everything run fine on my > Libraries. > But when I try it on my EJB, all the Junit test run (with success), but the > rate of cover is always set to 0%. > To make myJunit test on my Remote Ejb, I'm using the Jndi Context, using > InitialContext. I think than the problem come from this way of > instanciation. > > I really want to set my cover test on the EJB, do you know a way to do this > test on my Junit test using Jndi?? > > Thank in advance for all your answer. > Jeremie > > ----------------- > > Bonjour a tous, > Actuellement, je suis en train d'ecrire une plateforme de test automatique > pour un projet Java. > Ce dernier utilise des librairies, des ejb3 et des applis Web avec des > pages JSF. > > J'utilise Cobertura pour effectuer tous mes tests de couvertures. Tout > fonctionne bien sur mes librairies. > Mais quand j'essaye de les lancer sur mes tests Junit EJB(qui retournne > PASSED), le taux de couverture vaut toujours 0%. > Pour realiser mes tests sur mes EJB remote, je passe par le contexte JNDI, > utilisant l'InitialContext. Je pense que le probleme vient de la. > > Je souhaite vraiment realiser mes tests de couvertures sur mes EJB, > connaitriez vous un moyen d'y parvenir, tout en continuant a passer par le > contexte Jndi?? > > Merci d'avance. > Jeremie > > > > > > > |