के लिए स्प्रिंग/जेट्टी (या टोमकैट)/मेवेन का उपयोग करके एकीकरण टेस्ट को कॉन्फ़िगर करना मैं HTTP अनुरोधों (थोड़े ब्लैकबॉक्स परीक्षण) के साथ हमारी आरईएसटी सेवा का परीक्षण करना चाहता हूं। हालांकि, कुछ घंटों के बाद googling और विभिन्न विन्यासों की कोशिश कर रहा है, मैं अभी भी जेटी सही ढंग से शुरू करने में सक्षम नहीं हूँ। यहाँ मेरे वर्तमान विन्यास (मैं कई विभिन्न संस्करणों की कोशिश की) है:आरईएसटी परीक्षण
pom.xml
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.8</version>
<configuration>
<junitArtifactName>junit:junit</junitArtifactName>
<excludes>
<exclude>**/*_Roo_*</exclude>
<exclude>**/*Util*</exclude>
<exclude>**/*IT*</exclude>
</excludes>
<forkMode>once</forkMode>
<argLine>-javaagent:'${settings.localRepository}/org/springframework/spring-instrument/${org.springframework-version}/spring-instrument-${org.springframework-version}.jar' -javaagent:'${settings.localRepository}/org/aspectj/aspectjweaver/${org.aspectj-version}/aspectjweaver-${org.aspectj-version}.jar'</argLine>
<useSystemClassLoader>true</useSystemClassLoader>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.8</version>
<configuration>
<forkMode>once</forkMode>
<argLine>-javaagent:'${settings.localRepository}/org/springframework/spring-instrument/${org.springframework-version}/spring-instrument-${org.springframework-version}.jar' -javaagent:'${settings.localRepository}/org/aspectj/aspectjweaver/${org.aspectj-version}/aspectjweaver-${org.aspectj-version}.jar'</argLine>
<useSystemClassLoader>false</useSystemClassLoader>
</configuration>
<executions>
<execution>
<id>integration-test</id>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
<execution>
<id>verify</id>
<goals>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.10</version>
<configuration>
<scanintervalseconds>10</scanintervalseconds>
<stopkey>foo</stopkey>
<stopport>9999</stopport>
<contextpath>/${project.artifactId}</contextpath>
<connectors>
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
<port>9090</port>
</connector>
</connectors>
</configuration>
<executions>
<execution>
<id>start-jetty</id>
<phase>pre-integration-test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<scanintervalseconds>0</scanintervalseconds>
<daemon>true</daemon>
</configuration>
</execution>
<execution>
<id>stop-jetty</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
...
orm.xml
<!-- <context:load-time-weaver/> -->
<context:load-time-weaver weaver-class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver"/>
<context:spring-configured/>
<context:annotation-config />
<context:component-scan base-package="com.example.jump.domain">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
</context:component-scan>
<tx:annotation-driven transaction-manager="transactionManager" />
अभी, मैं अपवाद हो रही है:
- java.lang.IllegalStateException: क्लासलोडर [org.mortbay.jetty.webapp.WebAppClassLoader] 'addTransformer (क्लास' प्रदान नहीं करता है FileTransformer) 'विधि। एक कस्टम LoadTimeWeaver निर्दिष्ट करें या साथ वसंत के एजेंट अपने जावा आभासी मशीन शुरू: -javaagent: org.springframework.instrument.jar
मैं अपवाद को समझते हैं, लेकिन मैं इसे ठीक करने के लिए सक्षम नहीं था। मैंने कुछ अन्य दृष्टिकोणों की भी कोशिश की, जैसे MAVEN_OPTS के माध्यम से जावाएन्ट देना या जेटी को वीएम तर्क सेट करने का प्रयास करना। समस्या यह है कि Google विभिन्न संस्करणों के लिए 'समाधान' का एक गुच्छा वापस देता है और कोई भी काम नहीं कर रहा था।
मैं वर्तमान में बहुत निराश हूं कि आरईएसटी सेवा परीक्षण करने जैसे एक सामान्य परिदृश्य, वसंत में हासिल करना बहुत मुश्किल है। इसलिए यदि आप सही कॉन्फ़िगरेशन खोजने के लिए पर्याप्त चालाक हैं, तो कृपया इसे मेरे साथ साझा करें कि यहां तक कि एक बंदर भी इसे कॉन्फ़िगर कर सकता है और मैं वादा करता हूं कि अगर हम कभी बीयर से मुलाकात करेंगे तो मुझ पर हैं।
यहाँ संस्करणों मैं उपयोग कर रहे हैं:
<properties>
<java-version>1.6</java-version>
<org.springframework-version>3.0.5.RELEASE</org.springframework-version>
<org.aspectj-version>1.6.9</org.aspectj-version>
<org.slf4j-version>1.5.10</org.slf4j-version>
<redis.version>1.0.0.BUILD-SNAPSHOT</redis.version>
<org.jboss.hibernate.version>3.6.0.Final</org.jboss.hibernate.version>
<net.sf.ehcache.version>2.3.1</net.sf.ehcache.version>
</properties>
Maven 2.21
मैं खुशी से अधिक जानकारी प्रदान करता है, तो जरूरत है। जैसे मैंने कहा कि हर मदद की सराहना की।
क्या आपको एकीकरण परीक्षण के लिए लोड समय बुनाई की आवश्यकता है? – sourcedelica
इसके चारों ओर गुगल करना लगता है जैसे MAVEN_OPTS जाने का रास्ता है और आपको यह सुनिश्चित करने की ज़रूरत है कि जार के रास्ते में कोई स्थान न हो। – sourcedelica
जैसा मैंने लिखा था, मैंने बहुत कुछ किया था और मुझे MAVEN_OPTS भी मिला, फिर भी, कोई समाधान काम नहीं किया, पथ में कोई स्थान नहीं था। – hjuskewycz