我们应该在java测试文件夹还是主文件夹中编写testng selenium代码?
我正在编写一组selenium测试,我想构建一个jar并在docker上运行,我正在做一个基于maven的项目 在大多数视频教程中,我看到这些测试都写在test文件夹中。 但是在这种情况下,这个构建是否会添加到jar文件中,我是否能够执行这些呢我们应该在java测试文件夹还是主文件夹中编写testng selenium代码?,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,我正在编写一组selenium测试,我想构建一个jar并在docker上运行,我正在做一个基于maven的项目 在大多数视频教程中,我看到这些测试都写在test文件夹中。 但是在这种情况下,这个构建是否会添加到jar文件中,我是否能够执行这些呢 什么是测试selenium项目的适当文件夹结构?是的,它将基于您的pom.xml构建配置 <build> <finalName>testProject</finalName> <plugins> &
什么是测试selenium项目的适当文件夹结构?是的,它将基于您的pom.xml构建配置
<build>
<finalName>testProject</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<compilerVersion>1.8</compilerVersion>
<source>1.8</source>
<target>1.8</target>
<testSource>1.8</testSource>
<testTarget>1.8</testTarget>
</configuration>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>
${project.build.directory}/libs
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
测试项目
org.apache.maven.plugins
maven编译器插件
3.7.0
1.8
1.8
1.8
1.8
1.8
maven资源插件
2.6
复制资源
验证
复制资源
${project.build.directory}
src/main/resources
org.apache.maven.plugins
maven依赖插件
复制依赖项
准备包装
复制依赖项
${project.build.directory}/libs
org.apache.maven.plugins
maven jar插件
3.1.0
试验罐
最后一节特别告诉maven包含测试类[在其中编写测试脚本]并构建测试jar
你可以通过写来执行它
java -cp testProject.jar:testProject-tests.jar:libs/*<other parameters like testNG suite or host etc>
java-cp testProject.jar:testProject tests.jar:libs/*
当我使用页面对象框架时,我更喜欢在
src->main
中分离和编写页面类,在src Test
中编写测试类。您可以将文件夹结构保持为标准的maven结构。打包时,使用maven assembly插件创建fat jar,该插件将包含来自main和测试文件夹的所有类
在POM.XML中
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.3</version>
<configuration>
<descriptor>src/main/assembly/assembly.xml</descriptor>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>
<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
<id>fat-tests</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<outputDirectory>/</outputDirectory>
<useProjectArtifact>true</useProjectArtifact>
<unpack>true</unpack>
<scope>test</scope>
</dependencySet>
</dependencySets>
<fileSets>
<fileSet>
<directory>${project.build.directory}/test-classes</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>**/*.class</include>
</includes>
<useDefaultExcludes>true</useDefaultExcludes>
</fileSet>
<fileSet>
<directory>${project.build.directory}/test-classes</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>**/*.xml</include>
</includes>
<useDefaultExcludes>true</useDefaultExcludes>
</fileSet>
</fileSets>
FROM openjdk:8-jre-alpine
ADD testng-maven-1.0-SNAPSHOT-fat-tests.jar /
CMD java -cp testng-maven-1.0-SNAPSHOT-fat-tests.jar org.testng.TestNG -testjar testng-maven-1.0-SNAPSHOT-fat-tests.jar -groups unit