Maven无法看到测试

时间:2012-07-03 15:02:05

标签: unit-testing maven selenium

我正在使用maven来运行我的硒测试,但它没有找到我将它放在src/test/java下的测试。我的测试类名为SeleniumTest.java,因此遵循约定(*Test.java)这里是代码:

<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>com.tests.functional.selenium</groupId>
    <artifactId>functionalTestsSelenium</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>functionalTestsSelenium Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.seleniumhq.selenium.client-drivers</groupId>
            <artifactId>selenium-java-client-driver</artifactId>
            <version>1.0.2</version>
            <scope>test</scope>
        </dependency>

    </dependencies>
    <build>
        <finalName>functionalTestsSelenium</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.0.2</version>
            </plugin>

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>tomcat-maven-plugin</artifactId>
                <version>1.0-beta-1</version>
            </plugin>


            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>selenium-maven-plugin</artifactId>
            </plugin>


            <!-- Start the tomcat server and Deploy the war -->
            <plugin>
                <groupId>org.codehaus.cargo</groupId>
                <artifactId>cargo-maven2-plugin</artifactId>
                <configuration>
                    <wait>false</wait>
                    <container>
                        <containerId>tomcat6x</containerId>
                        <type>installed</type>
                        <home>${env.CATALINA_HOME}</home>
                    </container>
                </configuration>
                <executions>
                    <execution>
                        <id>start-container</id>
                        <phase>pre-integration-test</phase>
                        <goals>
                            <goal>start</goal>
                            <goal>deploy</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>stop-container</id>
                        <phase>post-integration-test</phase>
                        <goals>
                            <goal>stop</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>


            <!-- Start the selenium server -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>selenium-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>start</id>
                        <phase>pre-integration-test</phase>
                        <goals>
                            <goal>start-server</goal>
                        </goals>
                        <configuration>
                            <background>true</background>
                            <logOutput>true</logOutput>
                        </configuration>
                    </execution>
                    <execution>
                        <id>stop</id>
                        <phase>post-integration-test</phase>
                        <goals>
                            <goal>stop-server</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <!-- Fire the function tests -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.4.3</version>
                <configuration>
                    <junitArtifactname>
                        org.junit:com.springsource.org.junit
                    </junitArtifactname>
                    <excludes>
                        excluding the test class in the functional tests package
                        during the test phase
                        <exclude>**/functional/*Test.java</exclude>
                    </excludes>
                </configuration>
                <executions>
                    <execution>
                        <!-- Running the tests in the functional tests package during the integration tests phase. -->
                        <id>integration-tests</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>test</goal>
                        </goals>
                        <configuration>
                            <skip>false</skip>
                            <excludes>
                                <exclude>none</exclude>
                            </excludes>
                            <includes>
                                <include>**/functional/*Test.java</include>
                            </includes>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

这是我的测试课程:

package functional;
import com.thoughtworks.selenium.SeleneseTestCase;
public class SeleniumTest extends SeleneseTestCase {

    @Override
    public void setUp() throws Exception {
        setUp("http://www.netapsys.fr"); // délégation de la configuration à la classe parente
    }
    public void test() {
        selenium.open("/"); // ouverture de la page
        selenium.waitForPageToLoad("5000");
        assertTrue(selenium.isTextPresent("Netapsys"));
    }
}

这是运行后的控制台结果:

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building seleniumproject Maven Webapp 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ seleniumproject ---
[debug] execute contextualize
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO] 
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ seleniumproject ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-resources-plugin:2.5:testResources (default-testResources) @ seleniumproject ---
[debug] execute contextualize
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory C:\Users\neila\workspace\seleniumproject\src\test\resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ seleniumproject ---
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-surefire-plugin:2.10:test (default-test) @ seleniumproject ---
[INFO] No tests to run.
[INFO] Surefire report directory: C:\Users\neila\workspace\seleniumproject\target\surefire-reports
 -------------------------------------------------------
 T E S T S
-------------------------------------------------------

Results :

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

[INFO] 
[INFO] --- maven-war-plugin:2.0.2:war (default-war) @ seleniumproject ---
[INFO] Exploding webapp...
[INFO] Assembling webapp seleniumproject in C:\Users\neila\workspace\seleniumproject\target\seleniumproject
[INFO] Copy webapp webResources to C:\Users\neila\workspace\seleniumproject\target\seleniumproject
[INFO] Generating war C:\Users\neila\workspace\seleniumproject\target\seleniumproject.war
[INFO] Building war: C:\Users\neila\workspace\seleniumproject\target\seleniumproject.war
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.922s
[INFO] Finished at: Wed Jul 04 08:18:56 GMT+01:00 2012
[INFO] Final Memory: 5M/15M
[INFO] ------------------------------------------------------------------------

1 个答案:

答案 0 :(得分:5)

您的测试属于包functional。因此,它不会在测试阶段运行,因为您的pom指定应排除任何*functional*包:

            <configuration>
                <junitArtifactname>
                    org.junit:com.springsource.org.junit
                </junitArtifactname>
                <excludes>
                    excluding the test class in the functional tests package
                    during the test phase
                    <exclude>**/functional/*Test.java</exclude>
                </excludes>
            </configuration>

您的pom配置为在pre-integration-testpost-integration-test阶段启动(和停止)Selenium服务器。但是,在这些阶段,您不要求运行任何测试。我建议您查看failsafe Maven plugin,以便在functional.*阶段运行integration-test Selenium测试。