ื™ื ืกื˜ืจื•ืžืขื ื˜, ื•ื•ืึธื’: ื“ืขืจืคืึทืจื•ื ื’ ืคื•ืŸ ื ื™ืฆืŸ ืึธื˜ืึทืžื™ื™ื˜ื™ื“ ื˜ืขืกืฅ ื‘ื™ื™ ื•ื•ื˜ื‘

ืื•ื ื“ื–ืขืจ ืึธืคึผื˜ื™ื™ืœ ืงืจื™ื™ื™ืฅ ื’ืึธืจ ืึธื˜ืึทืžืึทื˜ื™ืง ืคึผื™ื™ืคึผืœื™ื™ื ื– ืคึฟืึทืจ ืœืึธื ื˜ืฉื™ื ื’ ื ื™ื™ึทืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืื™ืŸ ื“ื™ ืคึผืจืึธื“ื•ืงืฆื™ืข ืกื•ื•ื™ื•ื•ืข. ืคื•ืŸ ืงื•ืจืก, ื“ืึธืก ืจื™ืงื•ื•ื™ื™ืขืจื– ืึธื˜ืึทืžื™ื™ื˜ื™ื“ ืคืึทื ื’ืงืฉืึทื ืึทืœ ื˜ืขืกืฅ. ื•ื ื˜ืขืจ ื“ืขืจ ื“ื•ืจื›ืฉื ื™ื˜ ืื™ื– ืึท ื“ืขืจืฆื™ื™ืœื•ื ื’ ื•ื•ืขื’ืŸ ื•ื•ื™, ืกื˜ืึทืจื˜ื™ื ื’ ืžื™ื˜ ืื™ื™ืŸ-ืคืึธื“ืขื ื˜ืขืกื˜ื™ื ื’ ืื•ื™ืฃ ืึท ื”ื™ื’ืข ืžืึทืฉื™ืŸ, ืžื™ืจ ืจื™ื˜ืฉื˜ ื“ื™ ืคื•ื ื˜ ืคื•ืŸ ืžืึทืœื˜ื™-ื˜ืจืขื“ื™ื“ ืึทื•ื˜ืึธื˜ืขืกื˜ ืคืœื™ืกื ื“ื™ืง ืื•ื™ืฃ ืกืขืœืขื ืึธื™ื“ ืื™ืŸ ื“ื™ ื‘ื•ื™ืขืŸ ืจืขืจื  - ืœื™ื ื™ืข ืžื™ื˜ ืึทืŸ ืึทืœื•ืจืข ื‘ืึทืจื™ื›ื˜ ืื•ื™ืฃ 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. 

ืงืึธื ืก:

  • ืงื™ื™ืคืœ ืึทืก / ืงืึทื ื˜ื™ื™ื ืขืจื– ืคืืจืœืื ื’ื˜;
  • ื”ื•ื™ืš ืžื™ื˜ืœ ืงืึทื ืกืึทืžืฉืึทืŸ ืคึฟืึทืจ ื™ืขื“ืขืจ ื’ืึธืคึผืœ;
  • ื“ืขืจ ืคึผืœื•ื’ื™ืŸ ืื™ื– ืึทื•ื˜ื“ื™ื™ื˜ื™ื“ ืื•ืŸ ื ื™ื˜ ืžืขืจ ื’ืขืฉื˜ื™ืฆื˜. 

ื•ื•ื™ ืฆื• ื‘ืึทืงื•ืžืขืŸ ื™ื ืกื˜ืึทื‘ื™ืœื™ื˜ื™ 

ื˜ืขืกื˜ ื‘ืขื ื˜ืฉืขืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ื™ื“ืขืึทืœ, ืคึผื•ื ืงื˜ ื•ื•ื™ ื“ื™ ืึทื•ื˜ืึธื˜ืขืกื˜ืŸ ื–ื™ืš. ืขืก ืื™ื– ื ื™ืฉื˜ ื—ื™ื“ื•ืฉ ืึทื– ืžื™ืจ ื”ืึธื‘ืŸ ืึท ื ื•ืžืขืจ ืคื•ืŸ ืคืœืึทืงื™ ื˜ืขืกืฅ. ื’ืขืงื•ืžืขืŸ ืฆื• ืจืึทื˜ืขื•ื•ืขืŸ ืžืึทื•ื•ืขืŸ ื–ื™ื›ืขืจืคื™ืจืข ืคึผืœื•ื’ื™ืŸ, ื•ื•ืึธืก ืื•ื™ืก ืคื•ืŸ ื“ื™ ืงืขืกื˜ืœ ืฉื˜ื™ืฆื˜ ืจื™ืกื˜ืึทืจื˜ื™ื ื’ ื“ื•ืจื›ืคืึทืœ ื˜ืขืกืฅ. ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื“ื™ ืคึผืœื•ื’ื™ืŸ ื•ื•ืขืจืกื™ืข ืฆื• ื‘ื™ื™ึท ืžื™ื ื“ืกื˜ืขืจ 2.21 ืื•ืŸ ืฉืจื™ื™ึทื‘ืŸ ืื™ื™ืŸ ืฉื•ืจื” ืžื™ื˜ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืจื™ืกื˜ืึทืจื˜ื– ืื™ืŸ ื“ื™ ืคึผืึธื ื˜ืขืงืข ืึธื“ืขืจ ืคืึธืจืŸ ืขืก ื•ื•ื™ ืึท ืึทืจื’ื•ืžืขื ื˜ ืฆื• Maven.

ื‘ื™ื™ึทืฉืคึผื™ืœ ืคื•ืŸ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืึทื•ื˜ืึธื˜ืขืกื˜ืก:

   	
<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

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’