ืืื ืืืขืจ ืึธืคึผืืืื ืงืจืืืืฅ ืืึธืจ ืึธืืึทืืึทืืืง ืคึผืืืคึผืืืื ื ืคึฟืึทืจ ืืึธื ืืฉืื ื ื ืืึทืข ืืืขืจืกืืขืก ืคืื ืึทืคึผืืึทืงืืืฉืึทื ื ืืื ืื ืคึผืจืึธืืืงืฆืืข ืกืืืืืืข. ืคืื ืงืืจืก, ืืึธืก ืจืืงืืืืืขืจื ืึธืืึทืืืืืื ืคืึทื ืืงืฉืึทื ืึทื ืืขืกืฅ. ืื ืืขืจ ืืขืจ ืืืจืืฉื ืื ืืื ืึท ืืขืจืฆืืืืื ื ืืืขืื ืืื, ืกืืึทืจืืื ื ืืื ืืืื-ืคืึธืืขื ืืขืกืืื ื ืืืืฃ ืึท ืืืืข ืืึทืฉืื, ืืืจ ืจืืืฉื ืื ืคืื ื ืคืื ืืึทืืื-ืืจืขืืื ืึทืืืึธืืขืกื ืคืืืกื ืืืง ืืืืฃ ืกืขืืขื ืึธืื ืืื ืื ืืืืขื ืจืขืจื - ืืื ืืข ืืื ืึทื ืึทืืืจืข ืืึทืจืืื ืืืืฃ GitLab ืืืขืืขืจ ืืื ืืืืขื ืืฉืึทืืืึทืื ืืึทืงืืืขื ืึท ืงืื ืึธืืึทืืืืฉืึทื ืืขืฆืืึทื ืึทื ืฆืืงืื ืคึฟื ืืขื ืืฉื ืงืขื ืขื ื ืืฆื ืืืื.
ืืืื ืืืื ืืืจ ืื ืืขืืืืื?
ืฆื ืื ืกืืจืืืขื ื ืึทืืืึธืืขืกืืก ืืื ืืืกืฉืืืืขื ืืื ืืื ืื ืจืขืจื - ืืื ืืข, ืืืจ ืืึทืจืคึฟื ืึท ืึธืืึทืืืืฉืึทื ืคืจืืืืืืขืจืง ืืืึธืก ืงืขื ืืืื ืคืืขืงืกืึทืืึทื ืืฉืืื ืืืฉื ืฆื ืคึผืึทืกื ืืื ืืืขืจ ืืืืขืจืคืขื ืืฉื. ืืืขืึทืืื, ืืื ืืขืืืืื ืฆื ืืึทืงืืืขื ืึท ืืืื ื ืึธืจืืึทื ืคึฟืึทืจ ืื ืึทืืืึธืืขืกืืื ื ืืึธืืึธืจ, ืฆืืืขืคืืกื ืฆื ืขืืืขืืืื ื ืึทืืืึธืืขืกืืก ืืื ืื ืจืขืจื - ืืื ืืข. ืคึฟืึทืจ ืืืคึผืืึทืืขื ืืืืฉืึทื ืืืจ ืืืืกืืขืจืืืืืื ืื ืคืืืืขื ืืข ืืขืงื ืึทืืึทืืืฉืื:
- ื'ืืื,
- ืืืื,
- ืกืขืืขื ืืื,
- ืืืขืจืงืข + ืืื ื 4,
- ืืขืจื,
- ืืืืืึทื.
ืคืืจืืืืก ืืขื ืืึทืืื ืืขืจ ืืึทื ื? Java ืืื ืืืื ืขืจ ืคืื ืื ืืขืจืกื ืคืึธืืงืก ืฉืคึผืจืึทืื ืคึฟืึทืจ ืึธืืึทืืืืืื ืืขืกืฅ, ืืื ืึทืืข ืืึทื ืฉืึทืคึฟื ืืืืืืืืขืจ ืจืขืื ืขืก. ืกืขืืขื ืืื ืืื ืื ืงืืึธืจ ืืื ืืขืจ ืืึธื ืืืืืื ื. ืืืขืจืงืข, ืฆืืืืฉื ืื ืืขืจืข ืืืื, ืืื ืืขืืืขื ืืขืืืื ื ืฆื ืคืึทืจืืจืขืกืขืจื ืฆืืืจืื ืืื ืื ืจืขืืืืืึทืื ืคืื ืึธืืึทืืืืืื ืืขืกืฅ ืืืืฃ ืื ืืืื ืคืื ืืืคึผืึทืจืืืึทื ืฅ ืื ืืืึทืืืื ืืื ืืึทื ืืึทื ืืขืกืืื ื.
ืืืื-ืคืึธืืขื ืืขืกืฅ
ืึผืื ื ืืฉื ืฆื ืจืืื ืืืขื ื ืื ืจืึธื, ืืืจ ืืขื ืืืขื ืืืืืขืืึทืคึผืืึทื ืฅ ืคืื ืคืึทืจืฉืืื ืจืืคึผืึทืืึทืืึธืจืื ืืืืฃ GitHub ืืื ืื ืืงืขืจ ืคึฟืึทืจ ืื ืคืจืืืืืืขืจืง ืืื ืฆืืืขืคืืกื ืืื ืคึฟืึทืจ ืืื. ืืืจ ืืืฉืืคื ืึท ืจืืคึผืึทืืึทืืึธืจื ืคึฟืึทืจ ืื ืืืืคึผื ืืืืืืึธืืขืง ืืื ืื ืืึทืจืฅ ืคืื ืื ืึทืืืึธืืขืกื ืคืจืืืืืืขืจืง ืืื ืึท ืจืืคึผืึทืืึทืืึธืจื ืืื ืึท ืืึธืื ืืืืฉืคึผืื ืคืื ืืืคึผืืึทืืขื ืื ื ืึทืืืึธืืขืกืืก ืืืืฃ ืืื ืืืขืจ ืืึทืจืฅ. ืืขืืขืจ ืืึทื ืฉืึทืคึฟื ืืื ืฆื ื ืขืืขื ืื ืืึธืื ืืืื ืืื ืึทื ืืืืืงืืขื ืืขืกืฅ ืืื ืขืก, ืึทืืึทืคึผืืื ื ืขืก ืฆื ืืืืขืจ ืคึผืจืืืขืงื. ืืืจ ืืืคึผืืืื ืขืก ืฆื ืื GitLab-CI ืืึทื ืง, ืืืืฃ ืืืึธืก ืืืจ ืงืึทื ืคืืืืขืจื:
- ืืขืืืขื ืจืึทื ื ืคืื ืึทืืข ืืขืฉืจืืื ืึทืืืึธืืขืกืื ืคึฟืึทืจ ืืขืืขืจ ืคึผืจืืืขืงื;
- ืืึธื ืืฉืื ืืื ืื ืืืืขื ืจืขืจื - ืืื ืืข.
ืืื ืขืจืฉืืขืจ ืขืก ืืขื ืขื ืืขืืืขื ืืืืื ืืง ืืขืกืฅ, ืืื ืืื ืืขื ืขื ืืืจืืืขืงืึธืื ืืื ืืืื ืืืึทื. ืืืื-ืืจืขืืื ืคืืืกื ืืืง ืืืืฃ ืื GitLab Windows ืจืึทื ืขืจ ืคึผืึทืกืืง ืืื ืื ืืึทื ืฅ ืืื: ืื ืืขืกืฅ ืืึธืืืื ืื ืคึผืจืืืืจื ืืึทื ืง ืืืืขืจ ืืืืืื ืืื ืืขืืืืื ื ืึผืืขื ืงืืื ืจืขืกืืจืกื.
ืืื ืืขืจ ืฆืืื ืืื ืื ืฆืื ืืืืืืืขืกืื ืืขืืืืจื ืืืฅ ืืขืจ ืืื ืืขืจ, ืืื ืืืจ ืืืื ืืขืืจืืื ืฆื ืืืืคื ืืื ืคืืจืืืขื, ืืืขื ื ืคืืืขืจ ืืืืฃ ืืื ืื ืืขืืืืื ื ืขืืขื ืืขืจื ืืจืื ืฉืขื. ืื ืืขืจืข ืคึผืจืึธืืืขืืก ืืืื ืืจืืืก:
- ืืืจ ืงืขื ื ืืฉื ืืึทืฉืืขืืืงื ืึทื ืื ืืขืกืฅ ืืขื ืขื ืกืืึทืืื;
- ืืขืกืฅ ืืืึธืก ืืขื ืขื ืืืืคื ืขืืืขืืข ืืึธื ืืื ืึท ืจืืืขืจื ืืืืฃ ืื ืืืืข ืืึทืฉืื ืืื ืงืจืึทืฉื ืืื ืกื.
ืืืึทืฉืคึผืื ืคืื ืืึทืฉืืขืืืงื ืึทืืืึธืืขืกืืก:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
<configuration>
<skipTests>${skipTests}</skipTests>
<testFailureIgnore>false</testFailureIgnore>
<argLine>
-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
-Dcucumber.options="--tags ${TAGS} --plugin io.qameta.allure.cucumber2jvm.AllureCucumber2Jvm --plugin pretty"
</argLine>
</configuration>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-maven</artifactId>
<version>2.9</version>
</plugin>
</plugins>
ืคืึทืจื ืึทืจื ืืึทืจืืื ืืืึทืฉืคึผืื
ืจืึทื ืขืจ ืืึทืกืข ืืขืฉืึทืก ืืขืกืฅ (8 ืงืึธืจืขืก, 8 ืืืืืืืื ืืึทืจืึทื, 1 ืคืึธืืขื)
ืคึผืจืึธืก ืคืื ืืืื-ืคืึธืืขื ืืขืกืฅ:
- ืืจืื ื ืฆื ืื ืกืืึทืืืจื ืืื ืืืืคื;
- ืืึธื ืืฉืื ืืื ืกื ืืขื ืขื ืคึผืจืึทืงืืึทืงืื ื ืื ืึทื ืืขืจืฉ ืคืื ืืืืข ืืึธื ืืฉืื;
- ืืขืกืฅ ืืึธื ื ืื ืืืืจืงื ืืขืืขืจ ืื ืืขืจืขืจ;
- ืืื ืืืื ืจืขืงืืืืจืขืืขื ืฅ ืคึฟืึทืจ ืจืึทื ืขืจ ืจืขืกืืจืกื.
ืืืกืึทืืืืึทื ืืืืืฉืื ืคืื ืืืื-ืืจืขืืื ืืขืกืฅ:
- ื ืขืืขื ืึท ืืืืขืจ ืืึทื ื ืฆืืึทื ืฆื ืคืึทืจืขื ืืืงื;
- ืืึทื ื ืกืืืืืึทืืึทืืืืฉืึทื ืคืื ืืขืกืฅ;
- ืืึทืืืึธื ืืฉ ื ืืฆื ืคืื ืจืึทื ืขืจ ืจืขืกืืจืกื, ืืึธืจ ื ืืืขืจืืง ืืืืึทืืึทืืืืฉืึทื.
ืืขืกืฅ ืืืืฃ JVM ืคืึธืจืงืก
ืืื ื ืืืจ ืืึธืื ื ืืฉื ื ืขืืขื ืงืขืืจ ืคืื ืคืึธืืขื-ืืืืขืจ ืงืึธื ืืืขื ืืืคึผืืึทืืขื ืื ื ืื ืืึทืืข ืคืจืืืืืืขืจืง, ืื ืืขืจืกื ืงืืึธืจ ืืื ืืขืจ ืืึธื ืืืขื ืฆื ืืืืคื ืืื ืคึผืึทืจืึทืืขื ืืื ืืขืืืขื
ืื ืกืขืืขื ืึธืื ืกืขืจืืืขืจ ืืื ืืึธื ืืฉื ืืืืฃ ืึท ืืึทืฉืื ืืื 32 ืงืึธืจืขืก ืืื 24 ืืืืืืืื ืคืื ืืึทืจืึทื. ืืขืจ ืฉืืขืืจ ืืื ืืขืืืขื ืืึทืฉืืืื ืฆื 48 ืืจืึทืืืขืจื - 1,5 ืคึฟืขืืขื ืคึผืขืจ ืืึทืจืฅ ืืื ืืืขืื 400 ืืขืืืืืืื ืคืื ืืึทืจืึทื. ืืื ืึท ืจืขืืืืืึทื, ืื ืคึผืจืืืืจื ืฆืืื ืืื ืจืืืืกื ืคืื 40 ืฉืขื ืฆื 20 ืืื ืื. ืคืึทืจืืืืขืจื ืื ืจืึทื ื ืืขืืึธืืคึฟื ืกืึธืืืืข ืื ืกืืืืืึทืืึทืืืืฉืึทื ืคึผืจืึธืืืขื: ืืืฆื ืืืจ ืงืขื ืขื ืืขืฉืืืื ื ืืืืคื ื ืืึท ืึทืืืึธืืขืกืืก 30-XNUMX ืืื ืืื ืืืจ ืืขื ืขื ืืืืขืจ ืึทื ืืื ืืืืคื ืจืืืืืึทืืื.
ืืขืจ ืขืจืฉืืขืจ ืฉืืขืจืื ื ืคืื ืื ืืืืืื ื ืืื ืืขืืืขื ืื ืืืื ืืืืึทืืึทืืืืฉืึทื ืคืื ืจืึทื ืขืจ ืจืขืกืืจืกื ืืื ืึท ืงืืืื ื ืืืขืจ ืคืื ืคึผืึทืจืึทืืขื ืคึฟืขืืขื: ืืืืฃ 4 ืงืึธืจืขืก ืืื 8 ืืืืืืืื ืคืื ืืึทืจืึทื, ืื ืืขืกืฅ ืืขื ืขื ืกืืึทืืื ืืื ื ืื ืืขืจ ืืื 6 ืคึฟืขืืขื. ืื ืจืืข ืืืกืึธืจื: ืื ืคึผืืืืื ืืืฉืขื ืขืจืืืฅ ืจืึทื ืขืจ ืงืืืกื ืคึฟืึทืจ ืืขืืขืจ ืกืฆืขื ืึทืจ, ืงืืื ืขื ืื ืืื ืคืืืข ืคืื โโืืื ืืขื ืขื ืืึธื ืืฉื.
ืืืืืืืง! ืื ืืืืกื ื ืืฉื ืคืึธืจื ืึท ืืืึทืืขืืืืืง ืืื ืืึทืืก ืฆื argLineืคึฟืึทืจ ืืืึทืฉืคึผืื, ืืื ืืึธืก:
<argLine>-Dcucumber.options="--tags ${TAGS} --plugin io.qameta.allure.cucumber2jvm.AllureCucumber2Jvm --plugin pretty"</argLine>
โฆ
Mvn โDTAGS="@smoke"
ืืืื ืืืจ ืคืึธืจื ืื ืงืืืืื ืืืืฃ ืืขื ืืืขื, ืื ืคึผืืืืื ืืืขื ืืืฉืขื ืขืจืืื ืจืึทื ืขืจื ืคึฟืึทืจ ืึทืืข ืืขืกืฅ, ืืึธืก ืืื, ืขืก ืืืขื ืคึผืจืืืืจื ืฆื ืืืืคื ืึทืืข ืืขืกืฅ, ืกืงืืคึผืื ื ืืื ืืื ื ืึธื ืงืึทืืขืจ ืืื ืฉืึทืคึฟื ืคืืืข JVM ืคืึธืจืงืก.
ืขืก ืืื ืจืืืืืง ืฆื ืืืึทืจืคื ืึท ืืืึทืืขืืืืืง ืืื ืึท ืงืืืืื ืืื Tags ืืื ืื ืคึผืืืืื ืกืขืืืื ืืก, ืืขื ืืืึทืฉืคึผืื ืืื ืื. ืื ืืขืจืข ืืขืืืึธืืก ืืืจ ืืขืกืืขื ืืึธืื ืคึผืจืึธืืืขืืก ืงืึทื ืขืงืืื ื ืื ืึทืืืจืข ืคึผืืืืื.
ืืืึทืฉืคึผืื ืคืื ืคืืืกื ืืืง ืฆืืื ืคึฟืึทืจ 6 ืงืืจืฅ ืืขืกืฅ ืืื ืคืึทืืฉ ืกืขืืืื ืืก:
[INFO] Total time: 03:17 min
ืืืึทืฉืคึผืื ืคืื ืคึผืจืืืืจื ืืืืคื ืฆืืื ืืืื ืืืจ ืืืืึทื ืึทืจืืืขืจืคืืจื ืื ืงืืืืื ืฆื mvn... โืืืงืืืืขืจ.ืึธืคึผืฆืืขืก:
[INFO] Total time: 44.467 s
ืืืึทืฉืคึผืื ืคืื ืืึทืฉืืขืืืงื ืึทืืืึธืืขืกืืก:
<profiles>
<profile>
<id>parallel</id>
<build>
<plugins>
<plugin>
<groupId>com.github.temyers</groupId>
<artifactId>cucumber-jvm-parallel-plugin</artifactId>
<version>5.0.0</version>
<executions>
<execution>
<id>generateRunners</id>
<phase>generate-test-sources</phase>
<goals>
<goal>generateRunners</goal>
</goals>
<configuration>
<tags>
<tag>${TAGS}</tag>
</tags>
<glue>
<package>stepdefs</package>
</glue>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.21.0</version>
<configuration>
<forkCount>12</forkCount>
<reuseForks>false</reuseForks>
<includes>**/*IT.class</includes>
<testFailureIgnore>false</testFailureIgnore>
<!--suppress UnresolvedMavenProperty -->
<argLine>
-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar" -Dcucumber.options="--plugin io.qameta.allure.cucumber2jvm.AllureCucumber2Jvm TagPFAllureReporter --plugin pretty"
</argLine>
</configuration>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</profile>
ืืืืฉืคึผืื ืคืื ืึทื ืึทืืืจืข ืืึทืจืืื (ืื ืืขืจืกื ืึทื ืกืืืืืึทื ืคึผืจืึธืืข, 4 ืจืืจืึทื ื)
ืจืึทื ืขืจ ืืึทืกืข ืืขืฉืึทืก ืืขืกืฅ (8 ืงืึธืจืขืก, 8 ืืืืืืืื ืืึทืจืึทื, 12 ืคึฟืขืืขื)
ืคึผืจืึธืก:
- ืืจืื ื ืกืขืืึทืคึผ - ืืืจ ื ืึธืจ ืืึทืจืคึฟื ืฆื ืืืืื ืึท ืคึผืืืืื;
- ืื ืคืืืืงืืื ืฆื ืกืืืืึทืืืืื ืืึทืกืื ืืืจืืคืืจื ืึท ืืจืืืก ื ืืืขืจ ืคืื ืืขืกืฅ;
- ืึทืงืกืขืืขืจืืืฉืึทื ืคืื ืคึผืจืืืืจื ืกืืืืืึทืืึทืืืืฉืึทื ืืึทื ืง ืฆื ืฉืจืื 1.
ืงืึธื ืก:
- ืงืืืคื ืึทืก / ืงืึทื ืืืื ืขืจื ืคืืจืืื ืื;
- ืืืื ืืืื ืงืึทื ืกืึทืืฉืึทื ืคึฟืึทืจ ืืขืืขืจ ืืึธืคึผื;
- ืืขืจ ืคึผืืืืื ืืื ืึทืืืืืืืื ืืื ื ืื ืืขืจ ืืขืฉืืืฆื.
ืืื ืฆื ืืึทืงืืืขื ืื ืกืืึทืืืืืื
ืืขืกื ืืขื ืืฉืขืก ืืขื ืขื ื ืืฉื ืืืขืึทื, ืคึผืื ืงื ืืื ืื ืึทืืืึธืืขืกืื ืืื. ืขืก ืืื ื ืืฉื ืืืืืฉ ืึทื ืืืจ ืืึธืื ืึท ื ืืืขืจ ืคืื ืคืืึทืงื ืืขืกืฅ. ืืขืงืืืขื ืฆื ืจืึทืืขืืืขื
ืืืึทืฉืคึผืื ืคืื ืืึทืฉืืขืืืงื ืึทืืืึธืืขืกืืก:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.21.0</version>
<configuration>
โฆ.
<rerunFailingTestsCount>2</rerunFailingTestsCount>
โฆ.
</configuration>
</plugin>
ืึธืืขืจ ืืืืฃ ืกืืึทืจืืึทืคึผ: mvn โฆ -Dsurefire.rerunFailingTestsCount=2 โฆ
ืืื ืึทื ืึธืคึผืฆืืข, ืฉืืขืื Maven ืึธืคึผืฆืืขืก ืคึฟืึทืจ ืื PowerShell ืฉืจืืคื (PS1):
Set-Item Env:MAVEN_OPTS "-Dfile.encoding=UTF-8 -Dsurefire.rerunFailingTestsCount=2"
ืคึผืจืึธืก:
- ื ืื ืืึทืจืคึฟื ืฆื ืืืืกื ืฆืืื ืึทื ืึทืืืืืื ื ืึทื ืึทื ืกืืืืืึทื ืคึผืจืึธืืข ืืืขื ืขืก ืงืจืึทืฉืื;
- ืคึผืจืืืืจื ืืึทื ืง ืคืขืกืืงืืึทื ืคึผืจืึธืืืขืืก ืงืขื ืขื ืืืื ืืืืึทืืืืืื.
ืงืึธื ืก:
- ืคืืึธืืืื ื ืืกืจืื ืืช ืงืขื ืขื ืืืื ืืืกื;
- ืืืืคื ืฆืืึทื ืื ืงืจืืกืื.
ืคึผืึทืจืึทืืขื ืืขืกืฅ ืืื ืื ืงืืืงืึทืืืขืจ 4 ืืืืืืึธืืขืง
ืื ื ืืืขืจ ืคืื ืืขืกืฅ ืืขืืืืงืกื ืืขืืขืจ ืืึธื. ืื ืจ ืืื ื ืฐืืืข ืจ ืืขืืจืืื , ืฐืขื ื ืคืืจืฉืฒื ื ื ื ืืืืคื . ืืื ืืขืจืฆื, ืืื ืืขืืืืื ืฆื ืืืกืฉืืืืขื ืืื ืคืืืข ืืขืกืฅ ืืื ืืขืืืขื ืืื ืื ืึทืคึผืืึทืงืืืฉืึทื ืคึฟืึทืจืืึทืืืื ื ืจืขืจื - ืืื ืืข. ืืขืจ ืงืจืืืืฉ ืคืึทืงืืึธืจ ืืื ืืขืืืขื ืึทื ืื ืืืจ ืคืื ืจืึทื ืขืจื ืืขื ืืืขื ืฆื ืืึทื ื ืืืขื ืคืืืกื ืืืง ืืื ืคึผืึทืจืึทืืขื ืืื ืื ืืึทืืืขื ืคึผืืืืื.
ืืื ืืขืจ ืฆืืื, ืงืืืงืึทืืืขืจ 4 ืืื ืฉืืื ืืืคืจืืื, ืึทืืื ืืืจ ืืึทืฉืืึธืกื ืฆื ืจืืจืืื ืื ืงืขืจื ืคึฟืึทืจ ืืขื ืืืขืจืกืืข. ืืื ืื ืืขืืืื ื ืืขืจืืช ืืืจ ืืขื ืขื ืฆืืืขืืืื ืคึผืึทืจืึทืืขื ืงืึทืืขืจ ืืืืฃ ืื ืคืึธืืขื ืืืจืื. ืืขืึธืจืขืืืฉ, ืืึธืก ืืึธื ืืึธืื ืืขืืืขื:
- ืืืืืืืืง ืคืึทืจืืืืขืจื ืื ืืืืคื ืคืื ืึทืืืึธืืขืกืฅ ืืืจื ืื ืงืจืืกืื ื ืื ื ืืืขืจ ืคืื ืคึฟืขืืขื;
- ืขืืืืื ืืจื ืื ืึธื ืืืขืจ ืคืื ืฆืืื ืืืืฃ ืืืฉืขื ืขืจืืืืื ื ืจืึทื ืขืจื ืคึฟืึทืจ ืืขืืขืจ ืึทืืืึธืืขืกื.
ืึธืคึผืืืืืืื ื ืื ืคืจืืืืืืขืจืง ืคึฟืึทืจ ืืึทืืื-ืืจืขืืื ืึทืืืึธืืขืกืืก ืืื ืืขืืืขื ื ืืฉื ืึทืืื ืฉืืืขืจ. ืืืขืจืงืข 4 ืืืืคื ืืขืืขืจ ืืืื ืคึผืจืึธืืข ืืืืฃ ืึท ืืขืืึทืงืืืืึทื ืคืึธืืขื ืคืื ืึธื ืืืื ืฆื ืขื ืืืงื, ืึทืืื ืขืืืขืืข ืคึผืจืึธืกื ืกืืึทืืืง ืืื ืื ืืขื ืขื ืคืฉืื ืงืึธื ืืืขืจืืขื ืฆื ThreadLocal ืืืขืจืืึทืืึทืื.
ืื ืืืืคึผื ืืึทื ืืืขื ืงืึทื ืืืขืจืืื ื ื ืืฆื Idea ืจืขืคืึทืงืืึธืจืื ื ืืืฉืืจืื ืืื ืฆื ืงืึธื ืืจืึธืืืจื ืื ืขืจืืขืจ ืืื ืื ืืืึทืืขืืืืืง ืืื ืงืึทืืคึผืขืจื (ืืืฉื, ืืฉืขืง ืคึฟืึทืจ ื ืึทื). ืืื ืึทืืืฉืึทื, ืืืจ ืืึทืจืคึฟื ืฆื ืืืืื ืื Allure ืคึผืืืืื ืฆื ืื Junit Runner ืงืืึทืก ืึทื ืึทืืืืฉืึทื.
ืืืึทืฉืคึผืื ืคืื ืืึทืฉืืขืืืงื ืึทืืืึธืืขืกืืก:
<profile>
<id>parallel</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M3</version>
<configuration>
<useFile>false</useFile>
<testFailureIgnore>false</testFailureIgnore>
<parallel>methods</parallel>
<threadCount>6</threadCount>
<perCoreThreadCount>true</perCoreThreadCount>
<argLine>
-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
</argLine>
</configuration>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</profile>
ืืืืฉืคึผืื ืคืื ืึท ืึทืืืจืข ืืึทืจืืื (ืื ืืขืจืกื ืึทื ืกืืืืืึทื ืคึผืจืึธืืข, 5 ืจืืจืึทื ื)
ืจืึทื ืขืจ ืืึทืกืข ืืขืฉืึทืก ืืขืกืฅ (8 ืงืึธืจืขืก, 8 ืืืืืืืื ืืึทืจืึทื, 24 ืคึฟืขืืขื)
ืคึผืจืึธืก:
- ื ืืืขืจืืง ืืืื ืงืึทื ืกืึทืืฉืึทื;
- ืืขืืืืจื ืฉืืืฆื ืคืื ืืืขืจืงืข - ืงืืื ื ืึธื ืืืฉืืจืื ืคืืจืืื ืื;
- ืื ืคืืืืงืืื ืฆื ืืืืคื ืืขืจ ืืื 6 ืคึฟืขืืขื ืคึผืขืจ ืคึผืจืึทืกืขืกืขืจ ืืึทืจืฅ.
ืงืึธื ืก:
- ืืืจ ืืึทืจืคึฟื ืฆื ืขื ืฉืืจ ืึทื ืื ืงืึธื ืฉืืืฆื ืืึทืืื-ืืจืขืืื ืืืจืืคืืจืื ื;
- ืื ืคึผืึธืืืฆืืข ืฉืืืขื ืื ืงืจืืกืื.
ืึทืืืจืข ืจืืคึผืึธืจืฅ ืืืืฃ GitLab ืืืขืืขืจ
ื ืึธื ืื ืืจืึธืืืืกืื ื ืืึทืืื-ืืจืขืืื ืืืจืืคืืจืื ื, ืืืจ ืื ืืขืืืืื ืฆื ืคืึทืจืืจืขื ืืขื ืคืื ืืขืจ ืฆืืื ืฆื ืึทื ืึทืืืกืืก ืจืืคึผืึธืจืฅ. ืืื ืืขืจ ืฆืืื, ืืืจ ืืึธืื ืฆื ืฆืืคึฟืขืืืงืขืจ ืืขืืขืจ ืืึทืจืืื ืืื ืึท ืึทืจืืึทืคืึทืงื ืฆื GitLab, ืืึทื ืืจืืคืงืืคืืข ืขืก ืืื ืึทื ืคึผืึทืง ืขืก. ืขืก ืืื ื ืืฉื ืืืืขืจ ืืึทืงืืืขื ืืื ื ืขืื ืึท ืืึทื ื ืฆืืึทื. ืืื ืืืื ืขืืขืฆืขืจ ืึทื ืืขืจืฉ ืืืื ืฆื ืืขื ืืขื ืืึทืจืืื ืคึฟืึทืจ ืืื, ืืื ืืืขืื ืืึทืจืคึฟื ืฆื ืืึธื ืื ืืขืืืข ืึทืคึผืขืจืืืฉืึทื ื. ืืืจ ืืขืืืืื ืฆื ืืึทืงืืืขื ืืึทืืขืจืงืื ืืขื ืคืึทืกืืขืจ, ืืื ืืืจ ืืขืคึฟืื ืขื ืึท ืืืืืื ื - GitLab ืืืขืืขืจ. ืืึธืก ืืื ืึท ืืขืืืื-ืืื ืฉืืจืื ืืืึธืก ืืื ืื ืืืฆื ืืื ืึทืืข ืื ืืขืฆืืข ืืืขืจืกืืขืก ืคืื GitLab. ืึทืืึทืื ืืืจ ืฆื ืฆืขืืืืงืืขื ืกืืึทืืืง ืืืืืืขื ืืืืฃ ืืืื ืกืขืจืืืขืจ ืืื ืึทืงืกืขืก ืืื ืืืจื ืึท ืืืจืขืงื ืืื ืง.
ืึทืืข ืกืงืจืขืขื ืฉืึธืฅ ืคืื ืึทืืืจืข ืจืืคึผืึธืจืฅ ืืขื ืขื ืืขื ืืืขื ืืืืฃ GitLab ืืืขืืขืจ. ืฉืจืืคื ืคึฟืึทืจ ืืืคึผืืืืื ื ืืขื ืืึทืจืืื ืฆื GitLab ืืืขืืขืจ - ืืื Windows PowerShell (ืืืืืขืจ ืืืจ ืืึทืจืคึฟื ืฆื ืืืืคื ืึทืืืึธืืขืกืืก):
New-Item -ItemType directory -Path $testresulthistory | Out-Null
try {Invoke-WebRequest -Uri $hst -OutFile $outputhst}
Catch{echo "fail copy history"}
try {Invoke-WebRequest -Uri $hsttrend -OutFile $outputhsttrnd}
Catch{echo "fail copy history trend"}
mvn allure:report
#mvn assembly:single -PzipAllureReport
xcopy $buildlocationtargetsiteallure-maven-plugin* $buildlocationpublic /s /i /Y
ืืื ืืขื ืจืขืืืืืึทื ืืืึธืก
ืืืื ืืืจ ืืจืึทืืื ืฆื ืืืจ ืืึทืจืคึฟื ืคืึธืืขื ืืืืขืจ ืงืึธื ืืื ืื ืืืขืจืงืข ืึทืืืึธืืขืกื ืคืจืืืืืืขืจืง, ืืืฆื ืืขืจ ืขื ืืคืขืจ ืืื ืงืืึธืจ ืืื ืืขืจ ืืึธื - ืืื ืืืขืจืงืข 4 ืขืก ืืื ืืจืื ื ืฆื ืื ืกืืจืืืขื ื ืขืก, ืืื ืืขืจืืื ืืืืืืืืง ืื ืงืจืืกืื ื ืื ื ืืืขืจ ืคืื ืคึฟืขืืขื ืืึธื ืืฉื ืกืืืืึทืืืืื ืืึทืกืื. ืืื ืืขื ืืืคึฟื ืคืื ืคืืืกื ืืืง ืืขืกืฅ, ืื ืงืฉืื ืืืฆื ืืืขืจื ืืืขืื ืื ืคืึธืจืฉืืขืืื ื ืคืื ืื ืืึทืฉืื ืืื ืกืขืืขื ืึธืื ืืื ืื ืคึผืจืืืืจื ืืึทื ืง.
ืคึผืจืึทืงืืืกืื ืืึธืื ืืขืืืืื ืึทื ืคืืืกื ืืืง ืึทืืืึธืืขืกืืก ืืืืฃ ืคึฟืขืืขื ืึทืืึทืื ืืืจ ืฆื ืจืขืืืฆืืจื ืืืื ืงืึทื ืกืึทืืฉืึทื ืฆื ืึท ืืื ืืืื ืืื ืืขืจ ืืขืกืืขืจ ืคืึธืจืฉืืขืืื ื. ืืื ืงืขื ืขื ืืืื ืืขืืขื ืคืื ืื ืืจืึทืคืก, ืืึทืืืื ื ืคึฟืขืืขื ืืื ื ืืฉื ืคืืจื ืฆื ืึท ืขื ืืขื ืึทืงืกืขืืขืจืืืฉืึทื ืืื ืคืึธืจืฉืืขืืื ื ืืขืกืฅ. ืึธืืขืจ, ืืืจ ืืขื ืขื ืืืืืืช ืฆื ืืืืื ืืขืจ ืืื 2 ืึธืืึทืืืืืื ืืขืกืฅ ืฆื ืื ืึทืคึผืืึทืงืืืฉืึทื ืืืืขื, ืืืึธืก ืืคืืื ืืื 200 ืจืืจืึทื ื ืืืืคื ืืื ืืืขืื 5 ืืื ืื. ืืึธืก ืึทืืึทืื ืืืจ ืฆื ืืึทืงืืืขื ืฉื ืขื ืืึทืืขืจืงืื ืืขื ืคืื ืืื, ืืื, ืืืื ื ืืืืืง, ืืึทืื ืขื ืืขืจืื ืืขื ืืื ืืืืขืจืืืจื ืื ืคึผืจืึธืฆืขืืืจ ืืืืืขืจ.
ืืงืืจ: www.habr.com