2011-03-08 15 views
8

के साथ यूनिट परीक्षण एंड्रॉइड मेरे पास एक एंड्रॉइड प्रोजेक्ट के बारे में एक सवाल है जो मेवेन, के साथ बनाया गया है, हमने इसे अपने गतिविधि परीक्षण चलाए हैं, लेकिन अब हमें यूनिट परीक्षण चलाने की आवश्यकता है। यूनिट परीक्षण गतिविधि प्रोजेक्ट के समान प्रोजेक्ट में है, मैं इसे अपनी pom.xml फ़ाइलों में कैसे सेट अप करूं?मैवेन

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>andersen.project</groupId> 
    <artifactId>Hello-parent</artifactId> 
    <version>1.0</version> 
    <packaging>pom</packaging> 
    <name>Hello - Parent</name> 

    <modules> 
    <module>HelloWorld</module> 
    <module>HelloWorldTest</module> 
    </modules> 

    <dependencyManagement> 
    <dependencies> 
     <dependency> 
     <groupId>com.google.android</groupId> 
     <artifactId>android</artifactId> 
     <version>2.2.1</version> 
     <scope>provided</scope> 
     </dependency> 
     <dependency> 
     <groupId>com.google.android</groupId> 
     <artifactId>android-test</artifactId> 
     <version>2.2.1</version> 
     <scope>provided</scope> 
     </dependency> 
    </dependencies> 
    </dependencyManagement> 

    <build> 
    <sourceDirectory>src</sourceDirectory> 
    <testSourceDirectory>test</testSourceDirectory> 
    <pluginManagement> 
     <plugins> 
     <plugin> 
      <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
      <artifactId>maven-android-plugin</artifactId> 
      <version>2.8.3</version> 
     </plugin> 
     <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.2</version> 
     </plugin> 
     </plugins> 
    </pluginManagement> 
    </build> 
</project> 

इस आवेदन pom.xml है:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <parent> 
    <groupId>andersen.project</groupId> 
    <artifactId>Hello-parent</artifactId> 
    <version>1.0</version> 
    </parent> 

    <groupId>andersen.project</groupId> 
    <artifactId>helloworld</artifactId> 
    <version>1.0</version> 
    <packaging>apk</packaging> 
    <name>HelloWorld - Application</name> 

    <dependencies> 
    <dependency> 
     <groupId>com.google.android</groupId> 
     <artifactId>android</artifactId> 
    </dependency> 
    </dependencies> 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
     <artifactId>maven-android-plugin</artifactId> 
     <configuration> 
      <androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile> 
      <assetsDirectory>${project.basedir}/assets</assetsDirectory> 
      <resourceDirectory>${project.basedir}/res</resourceDirectory> 
      <nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory> 
      <sdk> 
      <platform>4</platform> 
      </sdk> 
      <deleteConflictingFiles>true</deleteConflictingFiles> 
      <undeployBeforeDeploy>true</undeployBeforeDeploy> 
     </configuration> 
     <extensions>true</extensions> 
     </plugin> 
     <plugin> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <configuration> 
      <source>1.5</source> 
      <target>1.5</target> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

और इस परीक्षण pom.xml फ़ाइल

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <parent> 
    <groupId>andersen.project</groupId> 
    <artifactId>Hello-parent</artifactId> 
    <version>1.0</version> 
    </parent> 

    <groupId>andersen.project</groupId> 
    <artifactId>helloworldtest</artifactId> 
    <version>1.0</version> 
    <packaging>apk</packaging> 
    <name>HalloWorld - Integration tests</name> 

    <dependencies> 
    <dependency> 
     <groupId>com.google.android</groupId> 
     <artifactId>android</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>com.google.android</groupId> 
     <artifactId>android-test</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>andersen.project</groupId> 
     <artifactId>helloworld</artifactId> 
     <type>apk</type> 
     <version>1.0</version> 
    </dependency> 
    <dependency> 
     <groupId>andersen.project</groupId> 
     <artifactId>helloworld</artifactId> 
     <type>jar</type> 
     <version>1.0</version> 
    </dependency> 
    </dependencies> 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
     <artifactId>maven-android-plugin</artifactId> 
     <configuration> 
      <androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile> 
      <assetsDirectory>${project.basedir}/assets</assetsDirectory> 
      <resourceDirectory>${project.basedir}/res</resourceDirectory> 
      <nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory> 
      <sdk> 
      <platform>4</platform> 
      </sdk> 
      <deleteConflictingFiles>true</deleteConflictingFiles> 
      <undeployBeforeDeploy>true</undeployBeforeDeploy> 
     </configuration> 
     <extensions>true</extensions> 
     </plugin> 
     <plugin> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <configuration> 
      <source>1.5</source> 
      <target>1.5</target> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
</project> 
है

इस जनक pom.xml फ़ाइल है

क्या मुझे पैरेंट pom.xml में निम्न पाठ जोड़ना चाहिए ?:

<dependency> 
    <groupId>junit</groupId> 
    <artifactId>junit</artifactId> 
    <version>4.8.1</version> 
    <scope>test</scope> 
</dependency> 

और इसे अन्य पोम्स में जोड़ें?

Junit.framework मौजूद नहीं है

+0

अगर आप JUnit उपयोग कर रहे हैं आप निर्भरता को जोड़ने के लिए है। – khmarbaise

+0

हां लेकिन यह अभी भी असफल रहा है। Junit.framework मौजूद नहीं है। – Casper

उत्तर

0

परीक्षण pom.xml करने Surefire plugin जोड़ें:

जब मैं maven उत्पादन होता है चलाते हैं। Surefire यूनिट परीक्षण चलाता है।

+0

मैंने पैरेंट pom.xml फ़ाइल और परीक्षण pom.xml फ़ाइल पर निर्भरता जोड़ा है। लेकिन यह अभी भी असफल रहा है: junit.framework मौजूद नहीं है – Casper

+0

@ कैस्पर: मॉड्यूल में यूनिट परीक्षण जोड़ने के लिए मत भूलना: http://maven.apache.org/plugins/maven-surefire-plugin/examples/junit.html –

+0

कृपया पूरा त्रुटि संदेश पोस्ट करें। कौन कहता है? अचूक? जावा कंपाइलर? –

7

मुझे एक ही समस्या का सामना करना पड़ा। यह माता-पिता पोम में गलत कॉन्फ़िगरेशन के कारण हुआ था। आपको निर्भरता प्रबंधन अनुभाग में स्कोप टैग को हटाना होगा।

इस तरह

:

<dependencyManagement> 
    <dependencies> 
    <dependency> 
     <groupId>com.google.android</groupId> 
     <artifactId>android</artifactId> 
     <version>2.2.1</version> 
    </dependency> 
    <dependency> 
     <groupId>com.google.android</groupId> 
     <artifactId>android-test</artifactId> 
     <version>2.2.1</version> 
    </dependency> 
    </dependencies> 
</dependencyManagement> 
बेशक
+1

मैवेन के लिए भी एक टेस्ट स्कोप मौजूद है! http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope। –