

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Beispiel für parallele Testausführung für verschiedene Testframeworks
<a name="sample-parallel-test"></a>

Sie können den `codebuild-tests-run` CLI-Befehl verwenden, um Ihre Tests auf parallel Ausführungsumgebungen aufzuteilen und auszuführen. Der folgende Abschnitt enthält `buildspec.yml` Beispiele für verschiedene Frameworks, die die Verwendung des `codebuild-tests-run` Befehls veranschaulichen.
+ Jedes der folgenden Beispiele umfasst eine `parallelism` Stufe von fünf, was bedeutet, dass fünf identische Ausführungsumgebungen erstellt werden, auf die Sie Ihre Tests verteilen können. Sie können eine `parallelism` Stufe auswählen, die zu Ihrem Projekt passt, indem Sie den `parallelism` Wert im `build-fanout` Abschnitt ändern.
+ Jedes Beispiel unten zeigt, wie Sie Ihre Tests so konfigurieren, dass sie nach dem Namen der Testdatei aufgeteilt werden, was standardmäßig der Fall ist. Dadurch werden die Tests gleichmäßig auf die parallel Ausführungsumgebungen verteilt.

Bevor Sie beginnen, finden Sie [Führen Sie parallel Tests in Batch-Builds aus](parallel-test.md) weitere Informationen unter.

Eine vollständige Liste der Optionen bei der Verwendung des `codebuild-tests-run` CLI-Befehls finden Sie unter[Verwenden Sie den `codebuild-tests-run` CLI-Befehl](parallel-test-tests-run.md).

**Topics**
+ [

# Konfigurieren Sie parallel Tests mit Django
](sample-parallel-test-django.md)
+ [

# Konfigurieren Sie parallel Tests mit Elixir
](sample-parallel-test-elixir.md)
+ [

# parallel Tests mit Go konfigurieren
](sample-parallel-test-go.md)
+ [

# parallel Tests mit Java (Maven) konfigurieren
](sample-parallel-test-java-maven.md)
+ [

# parallel Tests mit Javascript konfigurieren (Jest)
](sample-parallel-test-javascript.md)
+ [

# Konfigurieren Sie parallel Tests mit Kotlin
](sample-parallel-test-kotlin.md)
+ [

# Konfigurieren Sie parallel Tests mit PHPUnit
](sample-parallel-test-phpunit.md)
+ [

# Konfigurieren Sie parallel Tests mit Pytest
](sample-parallel-test-python.md)
+ [

# Konfigurieren Sie parallel Tests mit Ruby (Cucumber)
](sample-parallel-test-ruby-cucumber.md)
+ [

# parallel Tests mit Ruby (RSpec) konfigurieren
](sample-parallel-test-ruby.md)

# Konfigurieren Sie parallel Tests mit Django
<a name="sample-parallel-test-django"></a>

Das Folgende ist ein Beispiel für eine`buildspec.yml`, die die parallel Testausführung mit Django auf einer Ubuntu-Plattform zeigt:

```
version: 0.2

batch:
  fast-fail: false
  build-fanout:
    parallelism: 5

phases:
  install:
    commands:
      - echo 'Installing Python dependencies'
      - sudo yum install -y python3 python3-pip 
      - python3 -m ensurepip --upgrade 
      - python3 -m pip install django
  pre_build:
    commands:
      - echo 'Prebuild'
  build:
    commands:
      - echo 'Running Django Tests'
      - |
        codebuild-tests-run \
         --test-command 'python3 manage.py test $(echo "$CODEBUILD_CURRENT_SHARD_FILES" | sed -E "s/\//__/g; s/\.py$//; s/__/./g")' \ 
         --files-search "codebuild-glob-search '**/tests/*test_*.py'" \
         --sharding-strategy 'equal-distribution'
  post_build:
    commands:
      - echo 'Test execution completed'
```

Das obige Beispiel zeigt die Verwendung der Umgebungsvariablen`CODEBUILD_CURRENT_SHARD_FILES`. `CODEBUILD_CURRENT_SHARD_FILES`Wird verwendet, um Dateipfade mit Punktnotation abzurufen, die von Django unterstützt werden. Verwenden Sie doppelte Anführungszeichen `CODEBUILD_CURRENT_SHARD_FILES` innerhalb von Anführungszeichen, wie oben gezeigt.

# Konfigurieren Sie parallel Tests mit Elixir
<a name="sample-parallel-test-elixir"></a>

Das Folgende ist ein Beispiel für eine`buildspec.yml`, die die parallel Testausführung mit Elixir auf einer Ubuntu-Plattform zeigt:

```
version: 0.2

batch:
  fast-fail: false
  build-fanout:
    parallelism: 5

phases:
  install:
    commands:
      - echo 'Installing Elixir dependencies'
      - sudo apt update
      - sudo DEBIAN_FRONTEND=noninteractive apt install -y elixir
      - elixir --version
      - mix --version
  pre_build:
    commands:
      - echo 'Prebuild'
  build:
    commands:
      - echo 'Running Elixir Tests'
      - |
        codebuild-tests-run \
         --test-command 'mix test' \
         --files-search "codebuild-glob-search '**/test/**/*_test.exs'" \ 
         --sharding-strategy 'equal-distribution'
  post_build:
    commands:
      - echo "Test execution completed"
```

# parallel Tests mit Go konfigurieren
<a name="sample-parallel-test-go"></a>

Das Folgende ist ein Beispiel für eine`buildspec.yml`, die die parallel Testausführung mit Go auf einer Linux-Plattform zeigt:

```
version: 0.2

batch:
  fast-fail: false
  build-fanout:
    parallelism: 5
    ignore-failure: false

phases:
  install:
    commands:
      - echo 'Fetching Go version'
      - go version
  pre_build:
    commands:
      - echo 'prebuild'
  build:
    commands:
      - echo 'Running go Tests'
      - go mod init calculator
      - cd calc
      - |
        codebuild-tests-run \
         --test-command "go test -v calculator.go" \
         --files-search "codebuild-glob-search '**/*test.go'"
  post_build:
    commands:
      - echo "Test execution completed"
```

Im obigen Beispiel enthält die `calculator.go` Funktion einfache mathematische Funktionen zum Testen und alle Testdateien und `calculator.go` Dateien befinden sich im `calc` Ordner.

# parallel Tests mit Java (Maven) konfigurieren
<a name="sample-parallel-test-java-maven"></a>

Das Folgende ist ein Beispiel für eine`buildspec.yml`, die die parallel Testausführung mit Java auf einer Linux-Plattform zeigt:

```
version: 0.2

batch:
  fast-fail: false 
  build-fanout:
    parallelism: 5
    ignore-failure: false
    
phases:
  pre_build:
    commands:
      - echo 'prebuild'
  build:
    commands:
      - echo "Running mvn test"
      - |
        codebuild-tests-run \
          --test-command 'mvn test -Dtest=$(echo "$CODEBUILD_CURRENT_SHARD_FILES" | sed "s|src/test/java/||g; s/\.java//g; s|/|.|g; s/ /,/g" | tr "\n" "," | sed "s/,$//")' \
          --files-search "codebuild-glob-search '**/test/**/*.java'"
         
  post_build:
    commands:
      - echo "Running post-build steps..."
      - echo "Test execution completed"
```

Im angegebenen Beispiel `CODEBUILD_CURRENT_SHARD_FILES` enthält die Umgebungsvariable Testdateien im aktuellen Shard, getrennt durch Zeilenumbrüche. Diese Dateien werden in eine durch Kommas getrennte Liste von Klassennamen in dem Format konvertiert, das vom Parameter für Maven akzeptiert wird. `-Dtest`

# parallel Tests mit Javascript konfigurieren (Jest)
<a name="sample-parallel-test-javascript"></a>

Das Folgende ist ein Beispiel für eine`buildspec.yml`, die die parallel Testausführung mit Javascript auf einer Ubuntu-Plattform zeigt:

```
version: 0.2

batch:
  fast-fail: true
  build-fanout:
    parallelism: 5
    ignore-failure: false

phases:
  install:
    commands:
      - echo 'Installing Node.js dependencies'
      - apt-get update
      - apt-get install -y nodejs
      - npm install
      - npm install --save-dev jest-junit
  pre_build:
    commands:
      - echo 'prebuild'
  build:
    commands:
      - echo 'Running JavaScript Tests'
      - |
         codebuild-tests-run \
          --test-command "npx jest" \
          --files-search "codebuild-glob-search '**/test/**/*.test.js'" \
          --sharding-strategy 'stability'
    post_build:
      commands:
        - echo 'Test execution completed'
```

# Konfigurieren Sie parallel Tests mit Kotlin
<a name="sample-parallel-test-kotlin"></a>

Das Folgende ist ein Beispiel für eine`buildspec.yml`, die die parallel Testausführung mit Kotlin auf einer Linux-Plattform zeigt:

```
version: 0.2

batch:
  fast-fail: false
  build-fanout:
    parallelism: 2
    ignore-failure: false

phases:
  install:
    runtime-versions:
      java: corretto11 
    commands:
      - echo 'Installing dependencies'
      - KOTLIN_VERSION="1.8.20" # Replace with your desired version
      - curl -o kotlin-compiler.zip -L "https://github.com/JetBrains/kotlin/releases/download/v${KOTLIN_VERSION}/kotlin-compiler-${KOTLIN_VERSION}.zip"
      - unzip kotlin-compiler.zip -d /usr/local
      - export PATH=$PATH:/usr/local/kotlinc/bin
      - kotlin -version
      - curl -O https://repo1.maven.org/maven2/org/junit/platform/junit-platform-console-standalone/1.8.2/junit-platform-console-standalone-1.8.2.jar
  pre_build:
    commands:
      - echo 'prebuild'
  build:
    commands:
      - echo 'Running Kotlin Tests'
      - |
        codebuild-tests-run \
          --test-command 'kotlinc src/main/kotlin/*.kt $(echo "$CODEBUILD_CURRENT_SHARD_FILES" | tr "\n" " ") -d classes -cp junit-platform-console-standalone-1.8.2.jar' \
          --files-search "codebuild-glob-search 'src/test/kotlin/*.kt'"
      - |
        codebuild-tests-run \
          --test-command '
            java -jar junit-platform-console-standalone-1.8.2.jar --class-path classes \
              $(for file in $CODEBUILD_CURRENT_SHARD_FILES; do
                 class_name=$(basename "$file" .kt)
                 echo "--select-class $class_name"
               done)
          ' \
          --files-search "codebuild-glob-search 'src/test/kotlin/*.kt'"
  post_build:
    commands:
      - echo "Test execution completed"
```

Im obigen Beispiel wird die `codebuild-tests-run` CLI zweimal verwendet. Während des ersten Laufs kompiliert Kotlinc die Dateien. Die `CODEBUILD_CURRENT_SHARD_FILES` Variable ruft die dem aktuellen Shard zugewiesenen Testdateien ab, die dann in eine durch Leerzeichen getrennte Liste umgewandelt werden. JUnit Führt im zweiten Lauf die Tests aus. Ruft erneut `CODEBUILD_CURRENT_SHARD_FILES` die Testdateien ab, die dem aktuellen Shard zugewiesen sind, aber diesmal werden sie in Klassennamen umgewandelt.

# Konfigurieren Sie parallel Tests mit PHPUnit
<a name="sample-parallel-test-phpunit"></a>

Das Folgende ist ein Beispiel für eine`buildspec.yml`, die die parallel Testausführung PHPUnit auf einer Linux-Plattform zeigt:

```
version: 0.2
 
batch:
   fast-fail: false
   build-fanout:
     parallelism: 5
     ignore-failure: false
 
phases:
   install:
     commands:
       - echo 'Install dependencies'
       - composer require --dev phpunit/phpunit
   pre_build:
     commands:
       - echo 'prebuild'
   build:
     commands:
       - echo 'Running phpunit Tests'
       - composer dump-autoload
       - | 
         codebuild-tests-run \
          --test-command "./vendor/bin/phpunit --debug" \ 
          --files-search "codebuild-glob-search '**/tests/*Test.php'"
   post_build:
       commands:
         - echo 'Test execution completed'
```

# Konfigurieren Sie parallel Tests mit Pytest
<a name="sample-parallel-test-python"></a>

Das Folgende ist ein Beispiel für eine`buildspec.yml`, die die parallel Testausführung mit Pytest auf einer Ubuntu-Plattform zeigt:

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

Das Folgende ist ein Beispiel für eine`buildspec.yml`, die die parallel Testausführung mit Pytest auf einer Windows-Plattform zeigt:

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

Im obigen Beispiel wird die `CODEBUILD_CURRENT_SHARD_FILES` Umgebungsvariable verwendet, um Testdateien abzurufen, die dem aktuellen Shard zugewiesen sind und als Array an den Befehl pytest übergeben werden.

# Konfigurieren Sie parallel Tests mit Ruby (Cucumber)
<a name="sample-parallel-test-ruby-cucumber"></a>

Das Folgende ist ein Beispiel für eine`buildspec.yml`, die die parallel Testausführung mit Cucumber auf einer Linux-Plattform zeigt:

```
version: 0.2

batch:
  fast-fail: false
  build-fanout:
    parallelism: 5
    ignore-failure: false

phases:
  install:
    commands:
      - echo 'Installing Ruby dependencies'
      - gem install bundler
      - bundle install
  pre_build:
    commands:
      - echo 'prebuild'
  build:
    commands:
      - echo 'Running Cucumber Tests'
      - cucumber --init
      - |
        codebuild-tests-run \
         --test-command "cucumber" \
         --files-search "codebuild-glob-search '**/*.feature'"
  post_build:
    commands:
      - echo "Test execution completed"
```

# parallel Tests mit Ruby (RSpec) konfigurieren
<a name="sample-parallel-test-ruby"></a>

Das Folgende ist ein Beispiel für eine`buildspec.yml`, die die parallel Testausführung RSpec auf einer Ubuntu-Plattform zeigt:

```
version: 0.2

batch:
  fast-fail: false
  build-fanout:
    parallelism: 5
    ignore-failure: false

phases:
  install:
    commands:
      - echo 'Installing Ruby dependencies'
      - apt-get update
      - apt-get install -y ruby ruby-dev build-essential
      - gem install bundler
      - bundle install
  build:
    commands:
      - echo 'Running Ruby Tests'
      - |
         codebuild-tests-run \
          --test-command 'bundle exec rspec' \
          --files-search "codebuild-glob-search 'spec/**/*_spec.rb'" \
          --sharding-strategy 'equal-distribution'
  post_build:
    commands:
      - echo "Test execution completed"
```