Testcontainers ãšã¯äœãããªã䜿ãã¹ããªã®ãïŒ
ã³ãŒããå ¥æãã
çŸä»£ã®ãœãããŠã§ã¢ã·ã¹ãã ã¯ãããŸããŸãªæè¡ãããŒã«ã掻çšããŠè€éãªããžãã¹åé¡ã解決ããŠããŸããä»æ¥ã§ã¯ãã»ãšãã©ã®ãœãããŠã§ã¢ã·ã¹ãã ãåç¬ã§åäœããããšã¯ãªããéåžžã¯ããŒã¿ããŒã¹ãã¡ãã»ãŒãžã³ã°ã·ã¹ãã ããã£ãã·ã¥ãããã€ããŒããã®ä»ã®å€éšãµãŒãã¹ãšé£æºããŠããŸãããŸããçŸåšã®ç«¶äºã®æ¿ããåžå Žã§ã¯ãã¿ã€ã ã»ãã¥ã»ããŒã±ããïŒåžå Žæå ¥ãŸã§ã®æéïŒ ãéåžžã«éèŠã§ããäŒæ¥ã¯è£œåãå¯èœãªéãæ©ãåžå Žã«æå ¥ãããã£ãŒãããã¯ãåŸãŠãããåæ ããªããæ¹åããŠããããšãæ±ããŠããŸãããã®ãããªã¢ãžã£ã€ã«ãªéçºãå®çŸããã«ã¯ãå å®ãªç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ïŒCIïŒãšç¶ç¶çãããã€ã¡ã³ãïŒCDïŒããã»ã¹ãå¿ èŠã§ãã CI/CDããã»ã¹ã®éèŠãªéšåã®1ã€ããèªååããããã¹ãã§ããããã«ãããã¢ããªã±ãŒã·ã§ã³ã®æåãæ£ããããšãä¿èšŒããŸãã
ãŠããããã¹ãã¯ãããŒã¿ããŒã¹ãã¡ãã»ãŒãžã³ã°ã·ã¹ãã ãªã©ã®å€éšãµãŒãã¹ããåãé¢ããŠãããžãã¹ããžãã¯ãå®è£ ã®è©³çŽ°ããã¹ãããã®ã«åœ¹ç«ã¡ãŸããããããã¢ããªã±ãŒã·ã§ã³ã³ãŒãã®å€§éšåã¯ãããã®å€éšãµãŒãã¹ãšã®çµ±åã«é¢ä¿ããŠããå ŽåããããŸããã¢ããªã±ãŒã·ã§ã³ã«å¯ŸããŠååãªä¿¡é Œãæã€ããã«ã¯ããŠããããã¹ããšå ±ã«çµ±åãã¹ããèšè¿°ããã¢ããªã±ãŒã·ã§ã³ãå®å šã«æ©èœããŠããããšã確èªããå¿ èŠããããŸãã
ãããŸã§ãçµ±åãã¹ãã¯ãçµ±åãã¹ãç°å¢ããç¶æããé£ãããããå°é£ã§ãããšèããããŠããŸãããäºåã«ããããžã§ãã³ã°ãããã€ã³ãã©ã¹ãã©ã¯ãã£ã䜿çšããçµ±åãã¹ãã«ã¯ã以äžã®ãããªèª²é¡ããããŸãïŒ
- ãã¹ããå®è¡ããåã«ãã€ã³ãã©ã¹ãã©ã¯ãã£ãæ£åžžã«çšŒåããŠããããšã確èªããããŒã¿ãç¹å®ã®æãŸããç¶æ ã«äºåæ§æãããŠããå¿ èŠããããŸãã
- è€æ°ã®ãã«ããã€ãã©ã€ã³ã䞊è¡ããŠå®è¡ãããå Žåã1ã€ã®ãã¹ãå®è¡ãä»ã®ãã¹ãããŒã¿ã«å¹²æžããäžå®å®ãªãã¹ãïŒãã¬ã€ããŒãã¹ãïŒããã¹ãããŒã¿ã®æ±æãšãã£ãåé¡ãçºçããå¯èœæ§ããããŸã
äžèšã®èª²é¡ã®ãããäžéšã®äººã ã¯ãçµ±åãã¹ãã§å¿ èŠãªãµãŒãã¹ã®ã€ã³ã¡ã¢ãªçãçµã¿èŸŒã¿çã䜿çšããæ¹æ³ã«åŸãããšããããŸããäŸãã°ãã¢ããªã±ãŒã·ã§ã³ã Postgres ããŒã¿ããŒã¹ã䜿çšããŠããå Žåããã¹ãã§ã¯ H2 ã®ã€ã³ã¡ã¢ãªããŒã¿ããŒã¹ã代æ¿ãšããŠäœ¿çšããã±ãŒã¹ããããŸããããã¯çµ±åãã¹ããæžããªãããã¯æ¹åãããŠããŸããããããã®ãµãŒãã¹ã®ã¢ãã¯ãã€ã³ã¡ã¢ãªçã䜿çšããããšã«ã¯ç¬èªã®åé¡ã䌎ããŸãã
- ã€ã³ã¡ã¢ãªãµãŒãã¹ã¯ãå®éã®ãããã¯ã·ã§ã³ãµãŒãã¹ã®ãã¹ãŠã®æ©èœãåããŠããªãå¯èœæ§ããããŸãã äŸãã°ãã¢ããªã±ãŒã·ã§ã³ã§ Postgres ã Oracle ããŒã¿ããŒã¹ã®é«åºŠãªæ©èœã䜿çšããŠããå ŽåãH2 ã®ãããªã€ã³ã¡ã¢ãªããŒã¿ããŒã¹ã§ã¯ãããã®ãã¹ãŠã®æ©èœããµããŒããããŠããªãå¯èœæ§ããããŸããææªã®å Žåãéçºè ããããã®ã·ã¹ãã ã®åŒ·åãªæ©èœãæ¡çšããããšãæ éã«èããããã«ãªã£ãŠããŸãããšãããããŸããããã¯ã察å¿ãã代æ¿åã§ãã®æ©èœãåçŸããã®ãå°é£ãªããã§ãã
- ã€ã³ã¡ã¢ãªãµãŒãã¹ã¯ãã£ãŒãããã¯ãµã€ã¯ã«ãé ãããåå ã«ããªããŸãã äŸãã°ãSQL ã¯ãšãªãäœæããH2 ã€ã³ã¡ã¢ãªããŒã¿ããŒã¹ã§ãã¹ãããçµæãåé¡ãªãåäœããŠãããšããŸããããããã¢ããªã±ãŒã·ã§ã³ããããã€ããåŸã«ããã®ã¯ãšãªã®æ§æã H2 ã§ã¯åäœããŠããå®éã®ãããã¯ã·ã§ã³ããŒã¿ããŒã¹ïŒPostgres ã OracleïŒã§ã¯åäœããªãããšã«æ°ã¥ãå ŽåããããŸãããŸãããã®åé¡ã軜æžããããã«è€æ°ã®ç°ãªãå®è£ ãç¶æããªããã°ãªããªããããããŸããããã®ãããªãã¹ãã¯ãå€æŽã«å¯Ÿãããã£ãŒãããã¯ãµã€ã¯ã«ãè¿ éã«åŸããšãããã¹ãã®ç®çãå¹æçã«æãªãããšã«ãªããŸãã
ãããTestcontainers ã®çŽ æŽãããäžçãžãããã! ããã§ã¯ãå®éã®ãµãŒãã¹ã䜿çšããçµ±åãã¹ããå¯èœã«ãªãã ãã§ãªãããŠããããã¹ããæžãã®ãšåããããç°¡åã«è¡ããŸã ð
Testcontainers ãšã¯äœãïŒ
Testcontainers ã¯ãDocker ã³ã³ããã§ã©ãããããå®éã®ãµãŒãã¹ã䜿çšããŠçµ±åãã¹ããç°¡åãã€è»œéã«ã»ããã¢ããããããã®ãã¹ãã©ã€ãã©ãªã§ããTestcontainers ã䜿çšããããšã§ããããã¯ã·ã§ã³ç°å¢ã§å©çšããã®ãšåãã¿ã€ãã®ãµãŒãã¹ãšããåãããããã¹ãããã¢ãã¯ãã€ã³ã¡ã¢ãªãµãŒãã¹ã䜿ããã«èšè¿°ã§ããŸãã
Testcontainers ã䜿çšããå žåçãªçµ±åãã¹ãã®æµãã¯æ¬¡ã®ãšããã§ã:
- ãã¹ãå®è¡å:
- Testcontainers ã® API ã䜿çšããŠãå¿ èŠãªãµãŒãã¹ïŒããŒã¿ããŒã¹ãã¡ãã»ãŒãžã³ã°ã·ã¹ãã ãªã©ïŒã® Docker ã³ã³ãããèµ·åããŸãã
- ã¢ããªã±ãŒã·ã§ã³ã®èšå®ãæŽæ°ãããããã®ã³ã³ããåããããµãŒãã¹ã䜿çšããããã«æ§æããŸãã
- ãã¹ãå®è¡äž:
- ãã¹ãã¯ãããã®ã³ã³ããåããããµãŒãã¹ãå©çšããŠå®è¡ãããŸãã
- ãã¹ãå®è¡åŸ:
- ãã¹ãã®æåŠã«ããããããTestcontainers ããããã®ã³ã³ãããç Žæ£ããåŠçãèªåã§è¡ããŸãã
Testcontainers ã䜿çšãããã¹ããå®è¡ããããã®å¯äžã®èŠä»¶ã¯ãDocker API äºæã®ã³ã³ããã©ã³ã¿ã€ã ãå¿ èŠãªããšã§ããDocker Desktop ãã€ã³ã¹ããŒã«ãããŠããŠçšŒåããŠããå Žåãããã§æºåã¯æŽã£ãŠããŸãã
Testcontainers ããµããŒããã Docker ç°å¢ã®è©³çŽ°ã«ã€ããŠã¯ã以äžãåç §ããŠãã ãã: https://www.testcontainers.org/supported_docker_environment/â
Testcontainers ã解決ããåé¡ãšã¯ïŒ
Testcontainers ã¯ãåè¿°ã®çµ±åãã¹ãã«é¢ãã課é¡ã解決ããŸããå®éã®ãµãŒãã¹ã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ããã¹ãã§ããããã«ããããšã§ãã³ãŒãå€æŽã«å¯Ÿããä¿¡é Œæ§ãåäžãããŸãã
Testcontainers ã䜿çšããããšã§åŸãããã¡ãªãã:
- äºåã«çµ±åãã¹ãçšã®ã€ã³ãã©ãçšæããå¿ èŠããããŸãããTestcontainers API ã䜿çšãããšããã¹ãå®è¡åã«å¿ èŠãªãµãŒãã¹ãæäŸããŸããã€ã³ãã©ã®å®çŸ©ã³ãŒãã¯ãå®éã®ãã¹ãã³ãŒãã®ããé£ã«èšè¿°ãããããã管çãç°¡åã§ãã
- è€æ°ã®ãã«ããã€ãã©ã€ã³ã䞊è¡ããŠå®è¡ãããå Žåã§ããåãã€ãã©ã€ã³ã¯éé¢ããããµãŒãã¹ã»ããã§å®è¡ããããããããŒã¿ç«¶åããã¹ãã®å¹²æžã®åé¡ããããŸããã
- ãŠããããã¹ããšåãããã«ãçµ±åãã¹ããIDEããçŽæ¥å®è¡ã§ããŸããå€æŽãããã·ã¥ããŠCIãçµ±åãã¹ããå®è¡ããã®ãåŸ ã€å¿ èŠããããŸããã
- ãã¹ãã®å®è¡åŸãTestcontainers ãã³ã³ããã®ã¯ãªãŒã³ã¢ãããèªåçã«åŠçããŸãã
Testcontainers ã¯ãJavaã.NETãGoãNode.jsãRustãPython ãªã©ãå€ãã®äººæ°ã®ããããã°ã©ãã³ã°èšèªã§äœ¿çšã§ããŸãããŸãããããªãèšèªãµããŒããé²è¡äžã§ãã
ãŸãšã
çµ±åãã¹ãã«ããã課é¡ã確èªããã¢ãã¯ãã€ã³ã¡ã¢ãªãµãŒãã¹ã䜿ã£ããã¹ããå¿ ãããæé©ã§ã¯ãªãçç±ãç解ããŸããããã®åŸãTestcontainers ãçµ±åãã¹ãã®èª²é¡ãã©ã®ããã«è§£æ±ºããå®éã®ãµãŒãã¹ã䜿çšãããã¹ããå¯èœã«ãããã«ã€ããŠèª¬æããŸããã
Testcontainers ã«ã€ããŠããã«è©³ããç¥ãããå Žåã¯ãhttps://testcontainers.comâ ãã芧ãã ããã