

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Eksekusi uji paralel untuk berbagai sampel kerangka pengujian
<a name="sample-parallel-test"></a>

Anda dapat menggunakan perintah `codebuild-tests-run` CLI untuk membagi dan menjalankan pengujian Anda di seluruh lingkungan eksekusi paralel. Bagian berikut menyediakan `buildspec.yml` sampel untuk berbagai kerangka kerja, menggambarkan penggunaan perintah. `codebuild-tests-run`
+ Setiap contoh di bawah ini mencakup `parallelism` level lima, yang berarti bahwa lima lingkungan eksekusi yang identik akan dibuat untuk membagi pengujian Anda. Anda dapat memilih `parallelism` level yang sesuai dengan proyek Anda dengan memodifikasi `parallelism` nilai di `build-fanout` bagian tersebut.
+ Setiap contoh di bawah ini menunjukkan konfigurasi pengujian Anda untuk dibagi dengan nama file pengujian, yang secara default. Ini mendistribusikan tes secara merata di seluruh lingkungan eksekusi paralel.

Sebelum Anda memulai, lihat [Jalankan tes paralel dalam build batch](parallel-test.md) untuk informasi lebih lanjut.

Untuk daftar lengkap opsi saat menggunakan perintah `codebuild-tests-run` CLI, lihat. [Gunakan perintah `codebuild-tests-run` CLI](parallel-test-tests-run.md)

**Topics**
+ [Konfigurasikan tes paralel dengan Django](sample-parallel-test-django.md)
+ [Konfigurasikan tes paralel dengan Elixir](sample-parallel-test-elixir.md)
+ [Konfigurasikan tes paralel dengan Go](sample-parallel-test-go.md)
+ [Konfigurasikan tes paralel dengan Java (Maven)](sample-parallel-test-java-maven.md)
+ [Konfigurasikan tes paralel dengan Javascript (Jest)](sample-parallel-test-javascript.md)
+ [Konfigurasikan tes paralel dengan Kotlin](sample-parallel-test-kotlin.md)
+ [Konfigurasikan tes paralel dengan PHPUnit](sample-parallel-test-phpunit.md)
+ [Konfigurasikan tes paralel dengan Pytest](sample-parallel-test-python.md)
+ [Konfigurasikan tes paralel dengan Ruby (Mentimun)](sample-parallel-test-ruby-cucumber.md)
+ [Konfigurasikan tes paralel dengan Ruby () RSpec](sample-parallel-test-ruby.md)

# Konfigurasikan tes paralel dengan Django
<a name="sample-parallel-test-django"></a>

Berikut ini adalah contoh dari sebuah `buildspec.yml` yang menunjukkan eksekusi uji paralel dengan Django pada platform Ubuntu:

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

Contoh di atas menunjukkan penggunaan variabel lingkungan`CODEBUILD_CURRENT_SHARD_FILES`. Di sini `CODEBUILD_CURRENT_SHARD_FILES` digunakan untuk mengambil jalur berkas notasi titik didukung oleh Django. Gunakan tanda kutip ganda `CODEBUILD_CURRENT_SHARD_FILES` di dalam seperti yang ditunjukkan di atas.

# Konfigurasikan tes paralel dengan Elixir
<a name="sample-parallel-test-elixir"></a>

Berikut ini adalah contoh dari sebuah `buildspec.yml` yang menunjukkan eksekusi uji paralel dengan Elixir pada platform Ubuntu:

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

# Konfigurasikan tes paralel dengan Go
<a name="sample-parallel-test-go"></a>

Berikut ini adalah contoh dari `buildspec.yml` yang menunjukkan eksekusi uji paralel dengan Go pada platform Linux:

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

Dalam contoh di atas, `calculator.go` fungsi berisi fungsi matematika sederhana untuk menguji dan semua file uji dan `calculator.go` file ada di dalam `calc` folder.

# Konfigurasikan tes paralel dengan Java (Maven)
<a name="sample-parallel-test-java-maven"></a>

Berikut ini adalah contoh dari `buildspec.yml` yang menunjukkan eksekusi uji paralel dengan Java pada platform Linux:

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

Dalam contoh yang diberikan, variabel lingkungan `CODEBUILD_CURRENT_SHARD_FILES` berisi file uji dalam pecahan saat ini, dipisahkan oleh baris baru. File-file ini diubah menjadi daftar nama kelas yang dipisahkan koma dalam format yang diterima oleh `-Dtest` parameter untuk Maven.

# Konfigurasikan tes paralel dengan Javascript (Jest)
<a name="sample-parallel-test-javascript"></a>

Berikut ini adalah contoh dari `buildspec.yml` yang menunjukkan eksekusi uji paralel dengan Javascript pada platform Ubuntu:

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

# Konfigurasikan tes paralel dengan Kotlin
<a name="sample-parallel-test-kotlin"></a>

Berikut ini adalah contoh dari sebuah `buildspec.yml` yang menunjukkan eksekusi uji paralel dengan Kotlin pada platform Linux:

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

Dalam contoh di atas, `codebuild-tests-run` CLI digunakan dua kali. Selama proses pertama, kotlinc mengkompilasi file. `CODEBUILD_CURRENT_SHARD_FILES`Variabel mengambil file uji yang ditugaskan ke pecahan saat ini, yang kemudian diubah menjadi daftar yang dipisahkan spasi. Pada putaran kedua, JUnit jalankan tes. Sekali lagi, `CODEBUILD_CURRENT_SHARD_FILES` mengambil file uji yang ditugaskan ke pecahan saat ini, tetapi kali ini mereka diubah menjadi nama kelas.

# Konfigurasikan tes paralel dengan PHPUnit
<a name="sample-parallel-test-phpunit"></a>

Berikut ini adalah contoh dari `buildspec.yml` yang menunjukkan eksekusi uji paralel dengan PHPUnit pada platform Linux:

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

# Konfigurasikan tes paralel dengan Pytest
<a name="sample-parallel-test-python"></a>

Berikut ini adalah contoh dari `buildspec.yml` yang menunjukkan eksekusi uji paralel dengan Pytest pada platform Ubuntu:

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

Berikut ini adalah contoh dari `buildspec.yml` yang menunjukkan eksekusi uji paralel dengan Pytest pada platform Windows:

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

Dalam contoh di atas, variabel `CODEBUILD_CURRENT_SHARD_FILES` lingkungan digunakan untuk mengambil file uji yang ditugaskan ke pecahan saat ini dan diteruskan sebagai array ke perintah pytest.

# Konfigurasikan tes paralel dengan Ruby (Mentimun)
<a name="sample-parallel-test-ruby-cucumber"></a>

Berikut ini adalah contoh dari `buildspec.yml` yang menunjukkan eksekusi uji paralel dengan Cucumber pada platform Linux:

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

# Konfigurasikan tes paralel dengan Ruby () RSpec
<a name="sample-parallel-test-ruby"></a>

Berikut ini adalah contoh dari `buildspec.yml` yang menunjukkan eksekusi uji paralel dengan RSpec pada platform Ubuntu:

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