แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ, แƒ›แƒแƒกแƒจแƒขแƒแƒ‘แƒ˜: แƒ•แƒ˜แƒ—แƒ˜แƒ‘แƒ˜-แƒจแƒ˜ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ

แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒ แƒฅแƒ›แƒœแƒ˜แƒก แƒกแƒ แƒฃแƒšแƒแƒ“ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ  แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ”แƒ‘แƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒแƒฎแƒแƒšแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฌแƒแƒ แƒ›แƒแƒ แƒ’แƒแƒ แƒ”แƒ›แƒแƒจแƒ˜ แƒ’แƒแƒกแƒแƒจแƒ•แƒ”แƒ‘แƒแƒ“. แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒ”แƒก แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ  แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒฃแƒ  แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒก. แƒคแƒ แƒแƒ’แƒ›แƒ”แƒœแƒขแƒ˜แƒก แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒแƒ แƒ˜แƒก แƒแƒ›แƒ‘แƒแƒ•แƒ˜ แƒ˜แƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ , แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒšแƒแƒ™แƒแƒšแƒฃแƒ  แƒ›แƒแƒœแƒฅแƒแƒœแƒแƒ–แƒ” แƒ”แƒ แƒ—แƒ˜ แƒซแƒแƒคแƒ˜แƒแƒœแƒ˜ แƒขแƒ”แƒกแƒขแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ—, แƒ›แƒ˜แƒ•แƒ”แƒ“แƒ˜แƒ— Selenoid-แƒ–แƒ” แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒ แƒแƒ•แƒแƒšแƒกแƒแƒ แƒ—แƒฃแƒšแƒ˜แƒแƒœแƒ˜ แƒแƒ•แƒขแƒแƒขแƒ”แƒกแƒขแƒ˜แƒก แƒ”แƒขแƒแƒžแƒแƒ›แƒ“แƒ”, build pipeline-แƒจแƒ˜ Allure แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜แƒ— GitLab-แƒ˜แƒก แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ–แƒ” แƒ“แƒ แƒกแƒแƒ‘แƒแƒšแƒแƒแƒ“ แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ”แƒ— แƒ›แƒแƒ’แƒแƒ แƒ˜ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜. แƒ แƒแƒ› แƒ›แƒแƒ›แƒแƒ•แƒแƒš แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒ”แƒ‘แƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒœ แƒ’แƒฃแƒœแƒ“แƒ”แƒ‘แƒ˜.

แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ, แƒ›แƒแƒกแƒจแƒขแƒแƒ‘แƒ˜: แƒ•แƒ˜แƒ—แƒ˜แƒ‘แƒ˜-แƒจแƒ˜ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ

แƒกแƒแƒ˜แƒ“แƒแƒœ แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒ”แƒ—?

แƒแƒ•แƒขแƒแƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒกแƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒšแƒแƒ“ แƒ“แƒ แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒจแƒ˜ แƒ›แƒแƒ—แƒ˜ แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ“แƒ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒฉแƒแƒ แƒฉแƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒแƒฅแƒœแƒ˜แƒšแƒแƒ“ แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒแƒก แƒฉแƒ•แƒ”แƒœแƒ˜ แƒกแƒแƒญแƒ˜แƒ แƒแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“. แƒ˜แƒ“แƒ”แƒแƒšแƒฃแƒ  แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ›แƒ˜แƒœแƒ“แƒแƒ“แƒ แƒ›แƒ˜แƒ›แƒ”แƒฆแƒ แƒ”แƒ แƒ—แƒ˜ แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒ˜ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒขแƒ”แƒกแƒขแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒซแƒ แƒแƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ“แƒแƒžแƒขแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒจแƒ˜ แƒแƒ•แƒขแƒแƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒกแƒแƒ แƒ—แƒแƒ•แƒแƒ“. แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒฉแƒ•แƒ”แƒœ แƒแƒ•แƒ˜แƒ แƒฉแƒ˜แƒ”แƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒขแƒ”แƒฅแƒœแƒแƒšแƒแƒ’แƒ˜แƒ”แƒ‘แƒ˜:

  • แƒฏแƒแƒ•แƒ,
  • แƒ›แƒ”แƒ˜แƒ•แƒ”แƒœแƒ˜,
  • แƒกแƒ”แƒšแƒ”แƒœแƒ˜,
  • แƒ™แƒ˜แƒขแƒ แƒ˜+JUNIT 4,
  • แƒ›แƒ˜แƒ›แƒ–แƒ˜แƒ“แƒ•แƒ”แƒšแƒแƒ‘แƒ,
  • GitLab

แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ, แƒ›แƒแƒกแƒจแƒขแƒแƒ‘แƒ˜: แƒ•แƒ˜แƒ—แƒ˜แƒ‘แƒ˜-แƒจแƒ˜ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ

แƒ แƒแƒขแƒแƒ› แƒ”แƒก แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒ˜ แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜? Java แƒแƒ แƒ˜แƒก แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒžแƒแƒžแƒฃแƒšแƒแƒ แƒฃแƒšแƒ˜ แƒ”แƒœแƒ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒ›แƒแƒกแƒ–แƒ” แƒกแƒแƒฃแƒ‘แƒ แƒแƒ‘แƒก แƒ’แƒฃแƒœแƒ“แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒฌแƒ”แƒ•แƒ แƒ˜. แƒกแƒ”แƒšแƒ”แƒœแƒ˜ แƒแƒจแƒ™แƒแƒ แƒ แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜แƒ. แƒ™แƒ˜แƒขแƒ แƒ˜, แƒกแƒฎแƒ•แƒ แƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒ”แƒ‘แƒ—แƒแƒœ แƒ”แƒ แƒ—แƒแƒ“, แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ–แƒแƒ แƒ“แƒแƒก แƒœแƒ“แƒแƒ‘แƒ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ›แƒแƒ แƒ— แƒ˜แƒ› แƒ“แƒ”แƒžแƒแƒ แƒขแƒแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒก แƒ›แƒฎแƒ แƒ˜แƒ“แƒแƒœ, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒฉแƒแƒ แƒ—แƒฃแƒšแƒ˜แƒ แƒกแƒแƒฎแƒ”แƒšแƒ›แƒซแƒฆแƒ•แƒแƒœแƒ”แƒšแƒ แƒขแƒ”แƒกแƒขแƒ˜แƒ แƒ”แƒ‘แƒแƒจแƒ˜.

แƒ”แƒ แƒ—แƒ˜ แƒซแƒแƒคแƒ˜แƒแƒœแƒ˜ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜

แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒ‘แƒแƒ แƒ‘แƒแƒšแƒ˜ แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒแƒ  แƒ’แƒแƒ›แƒแƒ’แƒ•แƒ”แƒ’แƒแƒœแƒ, แƒฉแƒ•แƒ”แƒœ แƒแƒ•แƒ˜แƒฆแƒ”แƒ— แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ GitHub-แƒ˜แƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒกแƒแƒชแƒแƒ•แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ, แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒแƒ แƒฉแƒแƒก แƒกแƒแƒคแƒฃแƒซแƒ•แƒ”แƒšแƒ˜ แƒ“แƒ แƒ›แƒแƒ•แƒแƒฎแƒ“แƒ˜แƒœแƒ”แƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒฉแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก. แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒกแƒแƒชแƒแƒ•แƒ˜ แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒแƒ•แƒขแƒแƒขแƒ”แƒกแƒขแƒ˜แƒก แƒฉแƒแƒ แƒฉแƒแƒก แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒ— แƒ“แƒ แƒกแƒแƒชแƒแƒ•แƒ˜ แƒฉแƒ•แƒ”แƒœแƒก แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ–แƒ” แƒแƒ•แƒขแƒแƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒแƒฅแƒ แƒแƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒ—. แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒ’แƒฃแƒœแƒ“แƒก แƒฃแƒœแƒ“แƒ แƒแƒ”แƒฆแƒ แƒแƒฅแƒ แƒแƒก แƒกแƒฃแƒ แƒแƒ—แƒ˜ แƒ“แƒ แƒจแƒ”แƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ˜แƒœแƒ แƒ›แƒแƒกแƒจแƒ˜ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜, แƒ›แƒแƒ”แƒ แƒ’แƒ”แƒ‘แƒ˜แƒœแƒ แƒ˜แƒ’แƒ˜ แƒกแƒแƒ™แƒฃแƒ—แƒแƒ  แƒžแƒ แƒแƒ”แƒฅแƒขแƒ—แƒแƒœ. แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ•แƒแƒ•แƒ แƒชแƒ”แƒšแƒ”แƒ— แƒ˜แƒ’แƒ˜ GitLab-CI แƒ‘แƒแƒœแƒ™แƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ–แƒ”แƒช แƒ“แƒแƒ•แƒแƒงแƒ”แƒœแƒ”แƒ—:

  • แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒฌแƒ”แƒ แƒ˜แƒšแƒแƒ‘แƒ˜แƒ—แƒ˜ แƒแƒ•แƒขแƒแƒขแƒ”แƒกแƒขแƒ˜แƒก แƒงแƒแƒ•แƒ”แƒšแƒ“แƒฆแƒ˜แƒฃแƒ แƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ;
  • แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒกแƒแƒ›แƒจแƒ”แƒœแƒ”แƒ‘แƒšแƒ แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒจแƒ˜.

แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒขแƒ”แƒกแƒขแƒ˜ แƒ˜แƒงแƒ แƒ“แƒ แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ”แƒ แƒ— แƒœแƒแƒ™แƒแƒ“แƒจแƒ˜ แƒฉแƒแƒขแƒแƒ แƒ“แƒ. Windows runner GitLab-แƒ–แƒ” แƒ”แƒ แƒ—แƒ˜ แƒซแƒแƒคแƒ˜แƒแƒœแƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ™แƒแƒ แƒ’แƒแƒ“ แƒ’แƒ•แƒ”แƒ แƒ’แƒ”แƒ‘แƒแƒ“แƒ: แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ›แƒ แƒกแƒแƒขแƒ”แƒกแƒขแƒ แƒกแƒ™แƒแƒ›แƒ˜ แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒกแƒฃแƒ‘แƒฃแƒฅแƒแƒ“ แƒ˜แƒขแƒ•แƒ˜แƒ แƒ—แƒ แƒ“แƒ แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒแƒ  แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜.

แƒ“แƒ แƒแƒ—แƒ แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜ แƒแƒ•แƒขแƒแƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ แƒกแƒฃแƒš แƒฃแƒคแƒ แƒ แƒ“แƒ แƒฃแƒคแƒ แƒ แƒ›แƒ แƒแƒ•แƒšแƒ“แƒ”แƒ‘แƒแƒ“แƒ แƒ“แƒ แƒ›แƒแƒ— แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒฃแƒ แƒแƒ“ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒแƒ–แƒ” แƒ•แƒคแƒ˜แƒฅแƒ แƒแƒ‘แƒ“แƒ˜แƒ—, แƒ แƒแƒชแƒ แƒกแƒ แƒฃแƒšแƒ˜ แƒกแƒ˜แƒ แƒ‘แƒ˜แƒšแƒ˜ แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— แƒกแƒแƒ›แƒ˜ แƒกแƒแƒแƒ—แƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜ แƒ“แƒแƒ˜แƒฌแƒงแƒ. แƒแƒกแƒ”แƒ•แƒ” แƒ’แƒแƒ›แƒแƒฉแƒœแƒ“แƒ แƒกแƒฎแƒ•แƒ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜:

  • แƒฉแƒ•แƒ”แƒœ แƒ•แƒ”แƒ  แƒ“แƒแƒ•แƒแƒ“แƒแƒกแƒขแƒฃแƒ แƒ”แƒ—, แƒ แƒแƒ› แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜ แƒกแƒขแƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒ˜ แƒ˜แƒงแƒ;
  • แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ–แƒ”แƒ“แƒ˜แƒ–แƒ”แƒ“ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒฏแƒ”แƒ แƒ›แƒ” แƒฉแƒแƒขแƒแƒ แƒ“แƒ แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ• แƒแƒžแƒแƒ แƒแƒขแƒ–แƒ”, แƒฎแƒแƒœแƒ“แƒแƒฎแƒแƒœ แƒแƒ•แƒแƒ แƒ˜แƒฃแƒš แƒ˜แƒฅแƒœแƒ CI-แƒจแƒ˜.

แƒแƒ•แƒขแƒแƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜:

<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>

 แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ, แƒ›แƒแƒกแƒจแƒขแƒแƒ‘แƒ˜: แƒ•แƒ˜แƒ—แƒ˜แƒ‘แƒ˜-แƒจแƒ˜ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ
Allure แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜

 แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ, แƒ›แƒแƒกแƒจแƒขแƒแƒ‘แƒ˜: แƒ•แƒ˜แƒ—แƒ˜แƒ‘แƒ˜-แƒจแƒ˜ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ
แƒ แƒ‘แƒ”แƒœแƒ˜แƒก แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒก (8 แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜, 8 แƒ’แƒ‘ แƒแƒžแƒ”แƒ แƒแƒขแƒ˜แƒฃแƒšแƒ˜ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ, 1 แƒซแƒแƒคแƒ˜)
 
แƒ”แƒ แƒ—แƒ˜ แƒซแƒแƒคแƒ˜แƒแƒœแƒ˜ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ“แƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒ›แƒฎแƒแƒ แƒ”แƒ”แƒ‘แƒ˜:

  • แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ“แƒ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ;
  • CI-แƒจแƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒฃแƒšแƒแƒ“ แƒแƒ  แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ“แƒ”แƒ‘แƒ แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒกแƒ’แƒแƒœ;
  • แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜ แƒแƒ  แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒก แƒ”แƒ แƒ—แƒ›แƒแƒœแƒ”แƒ—แƒ–แƒ”;
  • แƒ›แƒ˜แƒœแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜ แƒ›แƒแƒ แƒ‘แƒ”แƒœแƒแƒšแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒ”แƒ แƒ—แƒ˜ แƒซแƒแƒคแƒ˜แƒแƒœแƒ˜ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒ™แƒšแƒแƒ•แƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜:

  • แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ“แƒ˜แƒ“แƒ˜ แƒ“แƒ แƒ แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ;
  • แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒฎแƒแƒœแƒ’แƒ แƒซแƒšแƒ˜แƒ•แƒ˜ แƒกแƒขแƒแƒ‘แƒ˜แƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ;
  • แƒ›แƒแƒ แƒ‘แƒ”แƒœแƒแƒšแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒแƒ แƒแƒ”แƒคแƒ”แƒฅแƒขแƒฃแƒ แƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ, แƒฃแƒ™แƒ˜แƒ“แƒฃแƒ แƒ”แƒกแƒแƒ“ แƒ“แƒแƒ‘แƒแƒšแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ.

แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜ JVM แƒฉแƒแƒœแƒ’แƒšแƒ”แƒ‘แƒ–แƒ”

แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒ, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒ•แƒ˜แƒ–แƒ แƒฃแƒœแƒ”แƒ— แƒซแƒแƒคแƒ”แƒ‘แƒ–แƒ” แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒ แƒ™แƒแƒ“แƒ–แƒ” แƒกแƒแƒ‘แƒแƒ–แƒ˜แƒกแƒ แƒคแƒ แƒ”แƒ˜แƒ›แƒฃแƒ แƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ•แƒ˜แƒกแƒแƒก, แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒฃแƒ แƒแƒ“ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒแƒจแƒ™แƒแƒ แƒ แƒ’แƒ–แƒ แƒ˜แƒงแƒ แƒ™แƒ˜แƒขแƒ แƒ˜-jvm-แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒฃแƒ แƒ˜-แƒžแƒšแƒแƒ’แƒ˜แƒœแƒ˜ แƒ›แƒแƒ•แƒ”แƒœแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒกแƒฌแƒแƒ แƒ˜ แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒฃแƒ แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ”แƒก แƒชแƒแƒšแƒ™แƒ”แƒฃแƒš แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒ”แƒ‘แƒจแƒ˜. แƒแƒ แƒแƒคแƒ”แƒ แƒ˜แƒ แƒ’แƒแƒกแƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ”แƒšแƒ˜, แƒ›แƒแƒ›แƒ˜แƒฌแƒ˜แƒ แƒกแƒ”แƒšแƒ”แƒœแƒแƒ˜แƒ“แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ.

Selenoid แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜ แƒแƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ“แƒ แƒ›แƒแƒœแƒฅแƒแƒœแƒแƒ–แƒ” 32 แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒ— แƒ“แƒ 24 GB แƒแƒžแƒ”แƒ แƒแƒขแƒ˜แƒฃแƒšแƒ˜ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒ—. แƒšแƒ˜แƒ›แƒ˜แƒขแƒ˜ แƒ“แƒแƒฌแƒ”แƒกแƒ“แƒ 48 แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒ–แƒ” - 1,5 แƒ—แƒ”แƒ›แƒ แƒ—แƒ˜แƒ—แƒ แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ–แƒ” แƒ“แƒ แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— 400 แƒ›แƒ‘ แƒแƒžแƒ”แƒ แƒแƒขแƒ˜แƒฃแƒšแƒ˜ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ. แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒขแƒ”แƒกแƒขแƒ˜แƒก แƒ“แƒ แƒ แƒจแƒ”แƒ›แƒชแƒ˜แƒ แƒ“แƒ แƒกแƒแƒ›แƒ˜ แƒกแƒแƒแƒ—แƒ˜แƒ“แƒแƒœ 40 แƒฌแƒฃแƒ—แƒแƒ›แƒ“แƒ”. แƒ แƒ‘แƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฉแƒฅแƒแƒ แƒ”แƒ‘แƒแƒ› แƒฎแƒ”แƒšแƒ˜ แƒจแƒ”แƒฃแƒฌแƒงแƒ แƒกแƒขแƒแƒ‘แƒ˜แƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒ’แƒแƒ“แƒแƒญแƒ แƒแƒก: แƒแƒฎแƒšแƒ แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ’แƒแƒ•แƒฃแƒจแƒ•แƒแƒ— แƒแƒฎแƒแƒšแƒ˜ แƒแƒ•แƒขแƒแƒขแƒ”แƒกแƒขแƒ˜ 20-30-แƒฏแƒ”แƒ , แƒกแƒแƒœแƒแƒ› แƒแƒ  แƒ“แƒแƒ•แƒ แƒฌแƒ›แƒฃแƒœแƒ“แƒ˜แƒ—, แƒ แƒแƒ› แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒกแƒแƒ˜แƒ›แƒ”แƒ“แƒแƒ“ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ“แƒœแƒ”แƒœ.
แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒก แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒœแƒแƒ™แƒšแƒ˜ แƒ˜แƒงแƒ แƒ›แƒแƒ แƒ‘แƒ”แƒœแƒแƒšแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒฆแƒแƒšแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ›แƒชแƒ˜แƒ แƒ” แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒฃแƒ แƒ˜ แƒซแƒแƒคแƒ”แƒ‘แƒ˜แƒ—: 4 แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ–แƒ” แƒ“แƒ 8 GB แƒแƒžแƒ”แƒ แƒแƒขแƒ˜แƒฃแƒšแƒ˜ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒแƒ–แƒ”, แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜ แƒกแƒขแƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒแƒ“ แƒ’แƒแƒ“แƒ˜แƒแƒ“แƒ แƒแƒ แƒแƒฃแƒ›แƒ”แƒขแƒ”แƒก 6 แƒซแƒแƒคแƒ˜แƒ—. แƒ›แƒ”แƒแƒ แƒ” แƒ›แƒ˜แƒœแƒฃแƒกแƒ˜: แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ˜ แƒฌแƒแƒ แƒ›แƒแƒฅแƒ›แƒœแƒ˜แƒก แƒ›แƒแƒ แƒ‘แƒ”แƒœแƒแƒš แƒ™แƒšแƒแƒกแƒ”แƒ‘แƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒกแƒชแƒ”แƒœแƒแƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ›แƒ˜แƒฃแƒฎแƒ”แƒ“แƒแƒ•แƒแƒ“ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ—แƒฃ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜ แƒ›แƒแƒ—แƒ’แƒแƒœแƒ˜แƒ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜.

แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜แƒ! แƒแƒ  แƒ’แƒแƒ“แƒแƒกแƒชแƒ”แƒ— แƒชแƒ•แƒšแƒแƒ“แƒ˜ แƒขแƒ”แƒ’แƒ”แƒ‘แƒ˜แƒ— argLineแƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒแƒกแƒ”:

<argLine>-Dcucumber.options="--tags ${TAGS} --plugin io.qameta.allure.cucumber2jvm.AllureCucumber2Jvm --plugin pretty"</argLine>
โ€ฆ
Mvn โ€“DTAGS="@smoke"

แƒ—แƒฃ แƒขแƒ”แƒ’แƒก แƒแƒ› แƒ’แƒ–แƒ˜แƒ— แƒ’แƒแƒ˜แƒ•แƒšแƒ˜แƒ—, แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ˜ แƒ’แƒแƒ›แƒแƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก แƒ›แƒแƒ แƒ‘แƒ”แƒœแƒแƒšแƒ”แƒ‘แƒก แƒงแƒ•แƒ”แƒšแƒ แƒขแƒ”แƒกแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒแƒœแƒฃ แƒ˜แƒก แƒจแƒ”แƒ”แƒชแƒ“แƒ”แƒ‘แƒ แƒ’แƒแƒฃแƒจแƒ•แƒแƒก แƒงแƒ•แƒ”แƒšแƒ แƒขแƒ”แƒกแƒขแƒ˜, แƒ’แƒแƒ›แƒแƒขแƒแƒ•แƒแƒก แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒ—แƒแƒœแƒแƒ•แƒ” แƒ“แƒ แƒจแƒ”แƒฅแƒ›แƒœแƒแƒก แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ JVM แƒฉแƒแƒœแƒ’แƒแƒšแƒ˜.

แƒกแƒฌแƒแƒ แƒ˜แƒ แƒฉแƒแƒแƒ’แƒ“แƒแƒก แƒชแƒ•แƒšแƒแƒ“แƒ˜ แƒขแƒ”แƒ’แƒ˜แƒ— แƒขแƒ”แƒ’แƒ”แƒ‘แƒ˜ แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒจแƒ˜, แƒ˜แƒฎแƒ˜แƒšแƒ”แƒ— แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒฅแƒ•แƒ”แƒ›แƒแƒ—. แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ”แƒ  แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒฎแƒ•แƒ แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒก แƒแƒฅแƒ•แƒ— แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜ Allure แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒแƒกแƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ—.

แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ 6 แƒ›แƒแƒ™แƒšแƒ” แƒขแƒ”แƒกแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒ—:

[INFO] Total time: 03:17 min

แƒขแƒ”แƒกแƒขแƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜, แƒ—แƒฃ แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  แƒ’แƒแƒ“แƒแƒ˜แƒขแƒแƒœแƒ”แƒ— แƒขแƒ”แƒ’แƒ˜ mvn... โ€“Dcucumber.options:

[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>

แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ, แƒ›แƒแƒกแƒจแƒขแƒแƒ‘แƒ˜: แƒ•แƒ˜แƒ—แƒ˜แƒ‘แƒ˜-แƒจแƒ˜ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ
Allure แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ (แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒแƒ แƒแƒกแƒขแƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒ˜ แƒขแƒ”แƒกแƒขแƒ˜, 4 แƒ’แƒแƒ›แƒ”แƒแƒ แƒ”แƒ‘แƒ)

แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ, แƒ›แƒแƒกแƒจแƒขแƒแƒ‘แƒ˜: แƒ•แƒ˜แƒ—แƒ˜แƒ‘แƒ˜-แƒจแƒ˜ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒแƒ แƒ‘แƒ”แƒœแƒ˜แƒก แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒก (8 แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜, 8 GB แƒแƒžแƒ”แƒ แƒแƒขแƒ˜แƒฃแƒšแƒ˜ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ, 12 แƒซแƒแƒคแƒ˜)
 
แƒ“แƒแƒ“แƒ”แƒ‘แƒ˜แƒ—แƒ˜:

  • แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ - แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒ›แƒแƒขแƒแƒ— แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ˜;
  • แƒ“แƒ˜แƒ“แƒ˜ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒ— แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ”แƒ แƒ—แƒ“แƒ แƒแƒฃแƒšแƒแƒ“ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ;
  • แƒขแƒ”แƒกแƒขแƒ˜แƒก แƒกแƒขแƒแƒ‘แƒ˜แƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒฉแƒฅแƒแƒ แƒ”แƒ‘แƒ 1 แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜แƒก แƒฌแƒงแƒแƒšแƒแƒ‘แƒ˜แƒ—. 

Cons:

  • แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ OS/แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜;
  • แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒ›แƒแƒฆแƒแƒšแƒ˜ แƒ›แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒฉแƒแƒœแƒ’แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก;
  • แƒ›แƒแƒ“แƒฃแƒšแƒ˜ แƒ›แƒแƒซแƒ•แƒ”แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ“แƒ แƒแƒฆแƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒšแƒ˜. 

แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒซแƒšแƒ˜แƒแƒ— แƒแƒ แƒแƒกแƒขแƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒแƒ‘แƒ 

แƒกแƒแƒขแƒ”แƒกแƒขแƒ แƒกแƒ™แƒแƒ›แƒ”แƒ‘แƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ˜แƒ“แƒ”แƒแƒšแƒฃแƒ แƒ˜, แƒ˜แƒกแƒ”แƒ•แƒ” แƒ แƒแƒ’แƒแƒ แƒช แƒ—แƒแƒ•แƒแƒ“ แƒแƒ•แƒขแƒแƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜. แƒ’แƒแƒกแƒแƒ™แƒ•แƒ˜แƒ แƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒแƒ แƒแƒ”แƒ แƒ—แƒ˜ แƒคแƒฎแƒ•แƒ˜แƒ”แƒ แƒ˜ แƒขแƒ”แƒกแƒขแƒ˜. แƒ›แƒแƒ•แƒ˜แƒ“แƒ แƒกแƒแƒ›แƒแƒจแƒ•แƒ”แƒšแƒแƒจแƒ˜ maven surefire แƒ›แƒแƒ“แƒฃแƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒ แƒ”แƒ“แƒแƒœ แƒ›แƒฎแƒแƒ แƒก แƒฃแƒญแƒ”แƒ แƒก แƒฌแƒแƒ แƒฃแƒ›แƒแƒขแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒแƒก. แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒœแƒแƒแƒฎแƒšแƒแƒ— แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒ แƒ›แƒ˜แƒœแƒ˜แƒ›แƒฃแƒ› 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"

แƒ“แƒแƒ“แƒ”แƒ‘แƒ˜แƒ—แƒ˜:

  • แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒ“แƒ แƒแƒ˜แƒก แƒ“แƒแƒ™แƒแƒ แƒ’แƒ•แƒ แƒแƒ แƒแƒกแƒขแƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒ˜ แƒขแƒ”แƒกแƒขแƒ˜แƒก แƒ’แƒแƒแƒœแƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒแƒ–แƒ”, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ˜แƒก แƒแƒ•แƒแƒ แƒ˜แƒฃแƒšแƒ˜แƒ;
  • แƒขแƒ”แƒกแƒขแƒ˜แƒก แƒกแƒ™แƒแƒ›แƒ–แƒ” แƒกแƒขแƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒแƒ‘แƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ›แƒชแƒ˜แƒ แƒ“แƒ”แƒก.

Cons:

  • แƒ›แƒชแƒฃแƒ แƒแƒ•แƒ˜ แƒ“แƒ”แƒคแƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒขแƒแƒ•แƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ;
  • แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒ แƒ˜แƒ–แƒ แƒ“แƒ”แƒ‘แƒ.

แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒฃแƒ แƒ˜ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜ แƒ™แƒ˜แƒขแƒ แƒ˜ 4 แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒแƒกแƒ—แƒแƒœ

แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ แƒงแƒแƒ•แƒ”แƒšแƒ“แƒฆแƒ˜แƒฃแƒ แƒแƒ“ แƒ˜แƒ–แƒ แƒ“แƒ”แƒ‘แƒแƒ“แƒ. แƒฉแƒ•แƒ”แƒœ แƒ˜แƒกแƒ”แƒ• แƒ•แƒ˜แƒคแƒ˜แƒฅแƒ แƒ”แƒ— แƒกแƒ˜แƒ แƒ‘แƒ˜แƒšแƒ˜แƒก แƒ“แƒแƒฉแƒฅแƒแƒ แƒ”แƒ‘แƒแƒ–แƒ”. แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒ›แƒ˜แƒœแƒ“แƒแƒ“แƒ แƒ แƒแƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒ”แƒขแƒ˜ แƒขแƒ”แƒกแƒขแƒ˜แƒก แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒ˜แƒ แƒ”แƒ‘แƒ แƒ’แƒแƒœแƒแƒชแƒฎแƒแƒ“แƒ˜แƒก แƒจแƒ”แƒ™แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒจแƒ˜. แƒ™แƒ แƒ˜แƒขแƒ˜แƒ™แƒฃแƒšแƒ˜ แƒคแƒแƒฅแƒขแƒแƒ แƒ˜ แƒ˜แƒงแƒ แƒ˜แƒก, แƒ แƒแƒ› แƒ›แƒแƒ แƒ‘แƒ”แƒœแƒแƒšแƒ—แƒ แƒ—แƒแƒแƒ‘แƒแƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ“แƒ˜แƒ“แƒ˜ แƒ“แƒ แƒ แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒ Maven แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒฃแƒ แƒแƒ“ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก.

แƒ˜แƒ› แƒ“แƒ แƒแƒก แƒ™แƒ˜แƒขแƒ แƒ˜ 4 แƒฃแƒ™แƒ•แƒ” แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒงแƒ, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ”แƒ— แƒแƒ› แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ“แƒแƒฌแƒ”แƒ แƒ. แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒขแƒ”แƒ‘แƒจแƒ˜ แƒ“แƒแƒ’แƒ•แƒžแƒ˜แƒ แƒ“แƒœแƒ”แƒœ แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒฃแƒ แƒแƒ“ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒแƒก แƒซแƒแƒคแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ–แƒ”. แƒ—แƒ”แƒแƒ แƒ˜แƒฃแƒšแƒแƒ“ แƒแƒกแƒ” แƒฃแƒœแƒ“แƒ แƒงแƒแƒคแƒ˜แƒšแƒ˜แƒงแƒ:

  • แƒกแƒแƒ’แƒ แƒซแƒœแƒแƒ‘แƒšแƒแƒ“ แƒ“แƒแƒแƒฉแƒฅแƒแƒ แƒแƒก แƒแƒ•แƒขแƒแƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒซแƒแƒคแƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก แƒ’แƒแƒ–แƒ แƒ“แƒ˜แƒ—;
  • แƒแƒฆแƒ›แƒแƒคแƒฎแƒ•แƒ แƒ แƒ“แƒ แƒแƒ˜แƒก แƒ“แƒแƒ™แƒแƒ แƒ’แƒ•แƒ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒแƒ•แƒขแƒแƒขแƒ”แƒกแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒแƒ แƒ‘แƒ”แƒœแƒแƒšแƒ—แƒ แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒ›แƒ แƒแƒ•แƒแƒšแƒกแƒแƒ แƒ—แƒฃแƒšแƒ˜แƒแƒœแƒ˜ แƒแƒ•แƒขแƒแƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒฉแƒแƒ แƒฉแƒแƒก แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒแƒ แƒช แƒ˜แƒกแƒ” แƒ แƒ—แƒฃแƒšแƒ˜ แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ. Cucumber 4 แƒแƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒ˜แƒœแƒ“แƒ˜แƒ•แƒ˜แƒ“แƒฃแƒแƒšแƒฃแƒ  แƒขแƒ”แƒกแƒขแƒก แƒ’แƒแƒ›แƒแƒงแƒแƒคแƒ˜แƒš แƒซแƒแƒคแƒ–แƒ” แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœ แƒ‘แƒแƒšแƒแƒ›แƒ“แƒ”, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒ แƒแƒ› แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ’แƒแƒ“แƒแƒ™แƒ”แƒ—แƒ“แƒ ThreadLocal แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒแƒ“. 
Idea refactoring แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒ™แƒแƒœแƒ•แƒ”แƒ แƒขแƒแƒชแƒ˜แƒ˜แƒกแƒแƒก แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜แƒ แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒแƒ— แƒแƒ“แƒ’แƒ˜แƒšแƒ”แƒ‘แƒ˜, แƒกแƒแƒ“แƒแƒช แƒชแƒ•แƒšแƒแƒ“แƒ˜ แƒจแƒ”แƒ“แƒแƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ (แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒœแƒฃแƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ). แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒ›แƒแƒขแƒแƒ— 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>

แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ, แƒ›แƒแƒกแƒจแƒขแƒแƒ‘แƒ˜: แƒ•แƒ˜แƒ—แƒ˜แƒ‘แƒ˜-แƒจแƒ˜ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒAllure แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ (แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒแƒ แƒแƒกแƒขแƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒ˜ แƒขแƒ”แƒกแƒขแƒ˜, 5 แƒ’แƒแƒ›แƒ”แƒแƒ แƒ”แƒ‘แƒ)

แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ, แƒ›แƒแƒกแƒจแƒขแƒแƒ‘แƒ˜: แƒ•แƒ˜แƒ—แƒ˜แƒ‘แƒ˜-แƒจแƒ˜ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒแƒ แƒ‘แƒ”แƒœแƒ˜แƒก แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒก (8 แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜, 8 GB แƒแƒžแƒ”แƒ แƒแƒขแƒ˜แƒฃแƒšแƒ˜ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ, 24 แƒซแƒแƒคแƒ˜)

แƒ“แƒแƒ“แƒ”แƒ‘แƒ˜แƒ—แƒ˜:

  • แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ‘แƒแƒšแƒ˜ แƒ›แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ;
  • แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ แƒ˜ แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ แƒ™แƒ˜แƒขแƒ แƒ˜แƒกแƒ’แƒแƒœ - แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒฎแƒ”แƒšแƒกแƒแƒฌแƒงแƒแƒ”แƒ‘แƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ;
  • แƒžแƒ แƒแƒชแƒ”แƒกแƒแƒ แƒ˜แƒก แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ–แƒ” 6-แƒ–แƒ” แƒ›แƒ”แƒขแƒ˜ แƒซแƒแƒคแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ.

Cons:

  • แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ แƒฌแƒ›แƒฃแƒœแƒ“แƒ”แƒ—, แƒ แƒแƒ› แƒ™แƒแƒ“แƒ˜ แƒ›แƒฎแƒแƒ แƒก แƒฃแƒญแƒ”แƒ แƒก แƒ›แƒ แƒแƒ•แƒแƒš แƒฎแƒ แƒแƒฎแƒœแƒ˜แƒแƒœ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒก;
  • แƒจแƒ”แƒกแƒ•แƒšแƒ˜แƒก แƒ‘แƒแƒ แƒ˜แƒ”แƒ แƒ˜ แƒ˜แƒ–แƒ แƒ“แƒ”แƒ‘แƒ.

Allure แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ”แƒ‘แƒก GitLab-แƒ˜แƒก แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ–แƒ”

แƒ›แƒ แƒแƒ•แƒแƒšแƒซแƒแƒšแƒ˜แƒแƒœแƒ˜ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฆแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒ”แƒ— แƒ’แƒแƒชแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒ— แƒ›แƒ”แƒขแƒ˜ แƒ“แƒ แƒแƒ˜แƒก แƒ“แƒแƒฎแƒแƒ แƒฏแƒ•แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ”แƒ‘แƒ˜แƒก แƒแƒœแƒแƒšแƒ˜แƒ–แƒ–แƒ”. แƒ˜แƒ› แƒ“แƒ แƒแƒก, แƒฉแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒแƒ•แƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ— แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒแƒ แƒขแƒ”แƒคแƒแƒฅแƒขแƒ˜ GitLab-แƒจแƒ˜, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒ“แƒ›แƒแƒ•แƒฌแƒ”แƒ แƒแƒ— แƒ“แƒ แƒ’แƒแƒœแƒ•แƒแƒ—แƒแƒ•แƒกแƒแƒ— แƒ˜แƒ’แƒ˜. แƒ”แƒก แƒแƒ  แƒแƒ แƒ˜แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ“แƒ แƒ“แƒ˜แƒ“แƒ˜ แƒ“แƒ แƒ แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ. แƒ“แƒ แƒ—แƒฃ แƒ•แƒ˜แƒœแƒ›แƒ”แƒก แƒกแƒฃแƒ แƒก แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜แƒก แƒœแƒแƒฎแƒ•แƒ แƒ—แƒแƒ•แƒแƒ“, แƒ›แƒแƒจแƒ˜แƒœ แƒ›แƒแƒ— แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ—. แƒ’แƒ•แƒ˜แƒœแƒ“แƒแƒ“แƒ แƒ’แƒแƒ›แƒแƒฎแƒ›แƒแƒฃแƒ แƒ”แƒ‘แƒ˜แƒก แƒฃแƒคแƒ แƒ แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ แƒ“แƒ แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜ แƒ•แƒ˜แƒžแƒแƒ•แƒ”แƒ— - GitLab แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ˜. แƒ”แƒก แƒแƒ แƒ˜แƒก แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒ GitLab-แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ‘แƒแƒšแƒ แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒจแƒ˜. แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ’แƒแƒœแƒแƒ—แƒแƒ•แƒกแƒแƒ— แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒกแƒแƒ˜แƒขแƒ”แƒ‘แƒ˜ แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ” แƒ“แƒ แƒจแƒ”แƒฎแƒ•แƒ˜แƒ“แƒ”แƒ— แƒ›แƒแƒ—แƒ–แƒ” แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ แƒ˜ แƒ‘แƒ›แƒฃแƒšแƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—.

Allure-แƒ˜แƒก แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ”แƒ‘แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ”แƒ™แƒ แƒแƒœแƒ˜แƒก แƒกแƒฃแƒ แƒแƒ—แƒ˜ แƒ’แƒแƒ“แƒแƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ 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

แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜แƒ—, แƒ แƒแƒ› 

แƒแƒกแƒ” แƒ แƒแƒ›, แƒ—แƒฃ แƒคแƒ˜แƒฅแƒ แƒแƒ‘แƒ“แƒ˜แƒ— แƒ˜แƒ›แƒแƒ–แƒ”, แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒ—แƒฃ แƒแƒ แƒ Thread-แƒ˜แƒก แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒ แƒ™แƒแƒ“แƒ˜ Cucumber autotest แƒคแƒแƒ แƒ’แƒšแƒ”แƒ‘แƒจแƒ˜, แƒแƒฎแƒšแƒ แƒžแƒแƒกแƒฃแƒฎแƒ˜ แƒแƒจแƒ™แƒแƒ แƒแƒ - Cucumber 4-แƒ˜แƒ— แƒ›แƒ˜แƒกแƒ˜ แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ•แƒ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ, แƒ แƒ˜แƒ—แƒแƒช แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒœแƒแƒ“ แƒ’แƒแƒ–แƒ แƒ“แƒ˜แƒก แƒ”แƒ แƒ—แƒ“แƒ แƒแƒฃแƒšแƒแƒ“ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ—แƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒแƒก. แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒแƒ› แƒ›แƒ”แƒ—แƒแƒ“แƒ˜แƒ—, แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ แƒ”แƒฎแƒ”แƒ‘แƒ แƒแƒžแƒแƒ แƒแƒขแƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒแƒก แƒกแƒ”แƒšแƒ”แƒœแƒแƒ˜แƒ“แƒ—แƒแƒœ แƒ“แƒ แƒกแƒแƒขแƒ”แƒกแƒขแƒ แƒกแƒ™แƒแƒ›แƒ—แƒแƒœ.

แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒแƒ› แƒแƒฉแƒ•แƒ”แƒœแƒ, แƒ แƒแƒ› แƒซแƒแƒคแƒ”แƒ‘แƒ–แƒ” แƒแƒ•แƒขแƒแƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ›แƒ˜แƒœแƒ˜แƒ›แƒฃแƒ›แƒแƒ›แƒ“แƒ” แƒจแƒ”แƒแƒ›แƒชแƒ˜แƒ แƒแƒ— แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ แƒกแƒแƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒ—. แƒ แƒแƒ’แƒแƒ แƒช แƒ’แƒ แƒแƒคแƒ˜แƒ™แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒฉแƒแƒœแƒก, แƒซแƒแƒคแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒแƒ แƒ›แƒแƒ’แƒ”แƒ‘แƒ แƒแƒ  แƒ˜แƒฌแƒ•แƒ”แƒ•แƒก แƒ›แƒกแƒ’แƒแƒ•แƒก แƒแƒฉแƒฅแƒแƒ แƒ”แƒ‘แƒแƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒจแƒ˜. แƒ—แƒฃแƒ›แƒชแƒ, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒซแƒ”แƒšแƒ˜แƒ— 2-แƒ–แƒ” แƒ›แƒ”แƒขแƒ˜ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒขแƒ”แƒกแƒขแƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก build-แƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช 200 แƒ’แƒแƒœแƒ›แƒ”แƒแƒ แƒ”แƒ‘แƒ˜แƒ—แƒแƒช แƒ™แƒ˜ แƒ’แƒแƒ“แƒ˜แƒก แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— 5 แƒฌแƒฃแƒ—แƒจแƒ˜. แƒ”แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ›แƒ˜แƒ˜แƒฆแƒแƒ— แƒกแƒฌแƒ แƒแƒคแƒ˜ แƒ’แƒแƒ›แƒแƒฎแƒ›แƒแƒฃแƒ แƒ”แƒ‘แƒ แƒ›แƒแƒ—แƒ’แƒแƒœ แƒ“แƒ, แƒกแƒแƒญแƒ˜แƒ แƒแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ’แƒแƒœแƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒแƒ— แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ™แƒ•แƒšแƒแƒ• แƒ’แƒแƒ˜แƒ›แƒ”แƒแƒ แƒแƒ— แƒžแƒ แƒแƒชแƒ”แƒ“แƒฃแƒ แƒ.

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ