AtomicJar、Testcontainersで誰でも使える統合テスト環境を提供:Java用エコシステムを拡張
Testcontainersの開発者によって創設されたAtomicJarは、Java用の統合テスト環境の構築を目指している。
AtomicJarはソフトウェア開発サイクル全体で統合テストを容易にすることを使命として掲げるスタートアップ企業だ。同社はTestcontainersとの統合テストを提供するJavaエコシステムのフレームワーク拡張を目指している。
Testcontainersは「JUnit」をサポートするオープンソースのJavaライブラリであり、Dockerコンテナで一般的なデータベースやSelenium Webブラウザなどを実行する軽量で使い捨てのインスタンスを提供する。JUnitは、Smalltalk用単体テストフレームワーク「SUnit」をベースとするJava用の単体テストフレームワークだ。
AtomicJarの創設チームには、Testcontainers開発者のリチャード・ノース氏(AtomicJar CTO:最高情報責任者)とセルゲイ・エゴロフ氏(AtomicJar共同設立者兼CEO)が含まれる。
ノース氏はDeloitte Digitalのチーフエンジニア時代の2015年にTestcontainersを開発した。同氏は統合テストのセットアップが絶望的に複雑だと考えていた。一貫性のあるローカルセットアップの作成からデータベースの構成やその他の無数の問題まで、全てに対応しなければならない。コードをテストする方法を必要とする開発者にとって、これら全てが混乱を招き、負担が掛かり、苦労させられる原因となっていた。
そこでTestcontainersだ。これにより、開発者はデータストアやデータベース(「Redis」「PostgreSQL」など)から「Apache Kafka」「RabbitMQ」「Selenium」などまで、全て「コンテナを使って」直接テストできるようになる。
Testcontainersはリリースから1年足らずで既存の統合テストプロジェクト数を上回り、最も人気があるDockerベースの統合テストライブラリになった。
「単体テストは問題ない。だが、特にデータベースや外部リソースを操作する場合は、統合テストを行わなければ運用環境にデプロイした後の動作がどうなるのか分からない。AtomicJarは、統合テストはやっていないという言い訳を許さないツールを提供したいと考えている。文字通り世界中の誰もがそうしたツールを使えるようになる」(エゴロフ氏)
Oracleの「Developers Blog」によると、Testcontainersによってデータアクセス層の統合テストが容易になるという。開発者はPostgreSQL、「MySQL」「Oracle Database」のコンテナインスタンスを使って互換性をテストできる。しかも、複雑なセットアップは必要ない。
「あまりにも長い間、統合テストが非常に重要な場合でも禁句のように扱われてきた。統合テストは、実行するのも正しく理解するのも難し過ぎた。統合テストを開発者が恐れるのではなく、テストしたいと考えるほど魅力的なものにしたいと考えている」(ノース氏)
Copyright © ITmedia, Inc. All Rights Reserved.