Pytest で並列テストを設定する
以下は、Ubuntu プラットフォームでの Pytest による並列テストの実行を示す buildspec.yml のサンプルです。
version: 0.2 batch: fast-fail: false build-fanout: parallelism: 5 ignore-failure: false phases: install: commands: - echo 'Installing Python dependencies' - apt-get update - apt-get install -y python3 python3-pip - pip3 install --upgrade pip - pip3 install pytest build: commands: - echo 'Running Python Tests' - | codebuild-tests-run \ --test-command 'python -m pytest' \ --files-search "codebuild-glob-search 'tests/test_*.py'" \ --sharding-strategy 'equal-distribution' post_build: commands: - echo "Test execution completed"
以下は、Windows プラットフォームでの Pytest による並列テストの実行を示す buildspec.yml のサンプルです。
version: 0.2 batch: fast-fail: false build-fanout: parallelism: 5 ignore-failure: false phases: install: commands: - echo 'Installing Python dependencies' - pip install pytest pre_build: commands: - echo 'prebuild' build: commands: - echo 'Running pytest' - | & codebuild-tests-run ` --test-command 'pytest @("$env:CODEBUILD_CURRENT_SHARD_FILES" -split \"`r?`n\")' ` --files-search "codebuild-glob-search '**/test_*.py' '**/*_test.py'" ` --sharding-strategy 'equal-distribution' post_build: commands: - echo "Test execution completed"
上記の例では、現在のシャードに割り当てられており、pytest コマンドに配列として渡されるテストファイルを取得するために CODEBUILD_CURRENT_SHARD_FILES 環境変数が使用されています。