You can but you need to add all the object graph in the archive. Here you miss an injection it seems (in your dao?).
Side note: operatesondeployment and naming your archive is not needed here. It is useful when you deploy N > 1 archives. Le sam. 23 juin 2018 12:54, Matthew Broadhead <[email protected]> a écrit : > i got the sample configuration from > http://tomee.apache.org/developer/testing/arquillian/index.html under > remote section. > > now my problem is that i can't inject the CDI bean > SEVERE - CDI Beans module deployment failed > org.apache.webbeans.exception.WebBeansDeploymentException: > javax.enterprise.inject.UnsatisfiedResolutionException: Api type > [uk.me.kissy.sales.dao.QuoteTypeDao] is not found with the qualifiers > Qualifiers: [@javax.enterprise.inject.Default()] > for injection into Field Injection Point, field name : quoteTypeDao, > Bean Owner : [QuoteGeneratorArquillian, WebBeansType:ENTERPRISE, > Name:null, API > Types:[uk.me.kissy.sales.test.QuoteGeneratorArquillian,java.lang.Object], > Qualifiers:[javax.enterprise.inject.Default,javax.enterprise.inject.Any]] > at > org.apache.webbeans.config.BeansDeployer.deploy(BeansDeployer.java:327) > at > > org.apache.openejb.cdi.OpenEJBLifecycle.startApplication(OpenEJBLifecycle.java:196) > > i created the @Deployment using > @Inject > private QuoteTypeDao quoteTypeDao; > > @Deployment(name = "archive") > public static WebArchive war() { > return ShrinkWrap.create(WebArchive.class, > "test.war").addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml") > .addClasses(QuoteTypeDao.class); > } > > @Test > @OperateOnDeployment("archive") > public void test1() { > Quote quote = new Quote(); > Promotion promotion = null; > List<QuoteType> quoteTypeList = > quoteTypeDao.selectQuoteTypes(promotion, true); > System.out.println("Quote type list size: " + > quoteTypeList.size()); > for (QuoteType quoteType : quoteTypeList) { > System.out.println(quoteType.getName()); > // quoteGeneratorDao.generateQuote(quote, promotion, > // quoteType.getQuoteTypeCategories(), quoteQuestions, > // quoteInit, true); > assertEquals(0, 1); > } > assertEquals(0, 1); > } > > can i not inject a CDI bean into the test using arquillian-tomee-remote? > > On 23/06/18 10:17, Romain Manni-Bucau wrote: > > It is not needed at all bit it appears in your stack. If it is a copy > paste > > just drop it ;) > > > > Le sam. 23 juin 2018 10:05, Matthew Broadhead > > <[email protected]> a écrit : > > > >> hi, i checked http://incubator.apache.org/projects/sirona.html but i > >> couldn't find any documentation. is sirona a requirement for > >> arquillian-tomee-remote? i.e. is it necessary to monitor tests? if so, > >> then how do i exclude the mysql lib from the configuration? > >> <!-- we monitor the test with sirona --> > >> <property name="javaagent"> > >> mvn:org.apache.sirona:sirona-javaagent:0.2-incubating:jar:shaded > >> </property> > >> > >> On 23/06/18 08:15, Romain Manni-Bucau wrote: > >>> Exclude mysql from sirona instrumentation. Its bytecode is not safe. > >>> > >>> Le sam. 23 juin 2018 01:03, Matthew Broadhead > >>> <[email protected]> a écrit : > >>> > >>>> thanks i added it using > >>>> <property > >>>> name="additionalLibs">mvn:mysql:mysql-connector-java:5.1.33</property> > >>>> > >>>> but i get these errors (which don't seem to stop execution) > >>>> > >>>> fail to transform > class:com/mysql/jdbc/AbandonedConnectionCleanupThread, > >>>> JSR/RET are not supported with computeFrames > >>>> optionjava.lang.RuntimeException: JSR/RET are not supported with > >>>> computeFrames option > >>>> at org.apache.sirona.asm.Frame.a(Unknown Source) > >>>> at org.apache.sirona.asm.MethodWriter.visitJumpInsn(Unknown > >> Source) > >>>> SEVERE - Can't create DataSource > >>>> java.lang.LinkageError: loader (instance of java/net/URLClassLoader): > >>>> attempted duplicate class definition for name: > >>>> "com/mysql/jdbc/ConnectionImpl" > >>>> > >>>> but this one is a stopper > >>>> > >>>> SEVERE - CDI Beans module deployment failed > >>>> org.apache.webbeans.exception.WebBeansDeploymentException: > >>>> javax.enterprise.inject.UnsatisfiedResolutionException: Api type > >>>> [uk.me.kissy.sales.dao.QuoteTypeDao] is not found with the qualifiers > >>>> Qualifiers: [@javax.enterprise.inject.Default()] > >>>> for injection into Field Injection Point, field name : quoteTypeDao, > >>>> Bean Owner : [QuoteGeneratorArquillian, WebBeansType:ENTERPRISE, > >>>> Name:null, API > >>>> Types:[java.lang.Object,uk.me > >> .kissy.sales.test.QuoteGeneratorArquillian], > >> > Qualifiers:[javax.enterprise.inject.Default,javax.enterprise.inject.Any]] > >>>> i tried enabling remote support as i am trying remote not embedded > >>>> tomee.remote.support = true > >>>> # tomee.serialization.class.blacklist = * > >>>> tomee.serialization.class.whitelist = * > >>>> > >>>> On 22/06/18 18:44, Romain Manni-Bucau wrote: > >>>>> You can add it in libs property of arquillian container config. Just > >>>> prefix > >>>>> the coords with mvn:. > >>>>> > >>>>> Ex: mvn:mysql:mysql-connector-jav:version > >>>>> > >>>>> It is a multiline property so you can add N libs to tomee lib this > way > >>>>> > >>>>> Le ven. 22 juin 2018 18:13, Matthew Broadhead > >>>>> <[email protected]> a écrit : > >>>>> > >>>>>> INFO: Downloading org.apache.tomee:apache-tomee:7.0.3:zip:plus > please > >>>>>> wait... > >>>>>> > >>>>>> i have an arquillian test running up ok but it is complaining > >>>>>> SEVERE - FATAL ERROR: Unknown error in Assembler. Please send the > >>>>>> following stack trace and this message to [email protected] : > >>>>>> org.apache.xbean.propertyeditor.PropertyEditorException: > Unable to > >>>>>> resolve class com.mysql.jdbc.Driver > >>>>>> > >>>>>> is there any way to directly bring in the mysql driver from maven > >>>>>> central? or do i need to download manually and put it into > >>>>>> src/test/tomee/lib? > >>>>>> > >>>>>> > >>>>>> On 22/06/18 10:03, Romain Manni-Bucau wrote: > >>>>>>> You can theorically but I'd recommand you to write it in the final > >>>> module > >>>>>>> instead of trying to use the parent which will be executed before > any > >>>>>> other > >>>>>>> modules. > >>>>>>> > >>>>>>> If A depends on B which depends on C then write your tests in A for > >> the > >>>>>>> complete app tests and write unit tests in B and C (potentially > using > >>>>>>> arquillian, appcomposer or even other solutions). > >>>>>>> > >>>>>>> For reference: > >>>>>>> http://tomee.apache.org/developer/testing/arquillian/index.html > and > >>>>>>> http://tomee.apache.org/developer/testing/index.html > >>>>>>> > >>>>>>> Romain Manni-Bucau > >>>>>>> @rmannibucau <https://twitter.com/rmannibucau> | Blog > >>>>>>> <https://rmannibucau.metawerx.net/> | Old Blog > >>>>>>> <http://rmannibucau.wordpress.com> | Github < > >>>>>> https://github.com/rmannibucau> | > >>>>>>> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book > >>>>>>> < > >> > https://www.packtpub.com/application-development/java-ee-8-high-performance > >>>>>>> Le ven. 22 juin 2018 à 09:42, Matthew Broadhead > >>>>>>> <[email protected]> a écrit : > >>>>>>> > >>>>>>>> it sounds like Arquillian might be the best fit in my case. can > the > >>>>>>>> tests inject CDI beans from the webapps or does everything need to > >> be > >>>>>>>> done through http? looking at > >>>>>>>> https://tomee.apache.org/refcard/refcard.html "Simple Arquilian > >> Test" > >>>>>> it > >>>>>>>> looks as if beans can be injected... > >>>>>>>> > >>>>>>>> is it possible to create the tests (or at least TomEE instance) > in a > >>>>>>>> parent pom? i need to run several webapps at once which are all > >>>> modules > >>>>>>>> of the parent. i think code is discouraged in parent project. > >>>>>>>> > >>>>>>>> > >>>>>>>> On 22/06/18 09:18, Romain Manni-Bucau wrote: > >>>>>>>>> You can set the property openejb.location (or the other ones we > >> have) > >>>>>> to > >>>>>>>>> point to an openejb.xml if you want. The advantage of the > >> properties > >>>> is > >>>>>>>>> that it is filtered during the test and doesnt require a maven > >> build > >>>>>> but > >>>>>>>> it > >>>>>>>>> is up to you and depends the project setup. > >>>>>>>>> > >>>>>>>>> Arquillian is great to test complete application*s* in a real > >> server, > >>>>>>>>> ApplicationComposer is good to test small parts of applications > or > >>>>>>>>> frameworks, TomEE, > >>>>>>>>> TomEEEmbeddedSingleRunner is great to test a real app (single > >>>>>> deployment > >>>>>>>>> from the classpath + single test setup) and will save a lot of > >> time. > >>>>>>>>> Romain Manni-Bucau > >>>>>>>>> @rmannibucau <https://twitter.com/rmannibucau> | Blog > >>>>>>>>> <https://rmannibucau.metawerx.net/> | Old Blog > >>>>>>>>> <http://rmannibucau.wordpress.com> | Github < > >>>>>>>> https://github.com/rmannibucau> | > >>>>>>>>> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book > >>>>>>>>> < > >> > https://www.packtpub.com/application-development/java-ee-8-high-performance > >>>>>>>>> Le ven. 22 juin 2018 à 09:03, Matthew Broadhead > >>>>>>>>> <[email protected]> a écrit : > >>>>>>>>> > >>>>>>>>>> i am trying to use ApplicationComposer to create some tests. > CDI > >> is > >>>>>>>>>> scanning the classes correctly but i am a little uncertain about > >> how > >>>>>> to > >>>>>>>>>> load a test database. > >>>>>>>>>> > >>>>>>>>>> i was going to start by just loading the database as normal as > it > >>>> is a > >>>>>>>>>> copy of production database. but how do i specify the username > >> and > >>>>>>>>>> password or any other properties that are needed to connect to > the > >>>> db? > >>>>>>>>>> @ContainerProperties(@ContainerProperties.Property(name = > "mydb", > >>>>>> value > >>>>>>>>>> = "jdbc:mysql://localhost:3306/mydb")) > >>>>>>>>>> > >>>>>>>>>> is there a way to specify the resource in an xml file? > >>>>>>>>>> > >>>>>>>>>> another question...is it better to start with Arquillian or > >>>>>>>>>> ApplicationComposer? > >>>>>>>>>> > >> > >
