こちらの記事はRunning Squish tests in CircleCI CI/CDの抄訳です。
Squishでは、Squish IDEからの実行だけではなく、コマンドラインでsquishrunnerコマンドを呼び出してテストを実行し、JUnit および Web レポートを生成することもできます。
squishrunner は --exitCodeOnFailスイッチ付きで呼び出すことで、テストケースが失敗した場合はカスタム終了コード (0 以外) を返し、それ以外の場合はゼロを返すように設定が可能です。したがって、CircleCIはその値に応じてジョブの状態を設定することができます。
CircleCIは、クラウドやプライベートインフラ上でCI/CDサービスを提供するプラットフォームです。
この例では、ローカルマシン上で動作するエージェントを使用します。
設定を行うには、まずソースが入ったGitHubやBitBucketのリポジトリを用意します。次に、このリポジトリをプロジェクトのソースとしてCircleCIに追加する必要があります。
その後、ローカルエージェントをセットアップします。"Self-Hoster Runners "にアクセスし、"Create Resource Class "を選択します。そのページの指示に従って、ローカルエージェントに以下のフォルダを作成します。
次のステップは、ローカルエージェント設定ファイル「launch-agent-config.yaml」の設定です。以下の内容を変更する必要があります。
最終的には、設定ファイルは以下のようになります。
api:
auth_token: "02ff98778548cd252o1ythfpsl570we153d776599d0d0510c1596b346e34c761e9f3d135669839" # FIXME: Specify your runner token
# On server, set url to the hostname of your server installation. For example,
# url: https://circleci.example.com
runner:
name: "WindowsLaptop" # FIXME: Specify the name of this runner instance
mode: continuous
working_directory: D:\CircleCI\Workdir
cleanup_working_directory: false
logging:
file: D:\CircleCI\circleci-runner.log
セルフホストランナーを設定する最後のステップは、グローバル環境変数を作成し、squishrunner の場所を定義することです。これを行うための一つの方法は、次のような内容の簡単なバッチスクリプトを作成することです。
set SQUISHRUNNER_PATH=D:\Squish/7.1/Squish_for_Qt_7.1.0/bin/squishrunner.exe
call circleci-launch-agent.exe
このスクリプトを実行することで、セルフホストエージェントが起動します。
CircleCiでワークフローを設定するために、プロジェクトの設定ファイルを編集します。
version: 2.1
jobs:
run-tests:
machine: true
resource_class: eduardkaverinskyi/local
steps:
- checkout
- run:
name: "Run Squish tests"
command: ${SQUISHRUNNER_PATH} --testsuite ${TESTSUITE_PATH} --local --exitCodeOnFail 13 --reportgen junit,C:/CircleCI/Workdir/reports/xml/junit_report.xml --reportgen html,reports/web_report
environment:
TESTSUITE_PATH: ./repository_testsuite_js
- run:
name: "Run FAILING Squish tests (expected failure)"
command: ${SQUISHRUNNER_PATH} --testsuite ${TESTSUITE_PATH} --local --exitCodeOnFail 13 --reportgen junit,C:/CircleCI/Workdir/reports/xml/junit_report_failing.xml --reportgen html,reports/web_report
environment:
TESTSUITE_PATH: repository_testsuite_failing_rb
- store_artifacts:
path: reports
- store_test_results:
path: C:/CircleCI/Workdir/reports/xml
workflows:
run-tests-workflow:
jobs:
- run-tests
このジョブでは、以下のような処理を行います。
CercleCIによるSquishのテストの実行は以下のようになります。
失敗したテスト結果のJUnitレポートは以下のようになります。
テスト実行後、HTMLレポートを含む成果物がアップロードされます。HTML レポートの詳細な結果を分析するには、成果物ビューを選択し、Web ブラウザで web_report/index.htmlを開きます。
以上が、CircleCIでSquishを使用する方法のご紹介になります。
SquishをはじめとするQtのQA(品質保証)ツールにご興味のおありの方は、Qt JapanのEメールアドレス:japan@qt.ioまでお気軽にご連絡ください。概要のご説明から詳細な技術的相談、また無料のツールトライアルのご案内もいたしております。