Erstellen Sie CodeBuild anhand des Beispiels einen Testbericht AWS CLI - AWS CodeBuild

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.

Erstellen Sie CodeBuild anhand des Beispiels einen Testbericht AWS CLI

Tests, die Sie in der buildspec-Datei angeben, werden während des Builds ausgeführt. Dieses Beispiel zeigt Ihnen, wie Sie mit AWS CLI dem Tests in Builds integrieren können CodeBuild. Sie können JUnit verwenden, um Komponententests zu erstellen, oder ein anderes Werkzeug, um Konfigurationstests zu erstellen. Anschließend können Sie die Testergebnisse auswerten, um Probleme zu beheben oder Ihre Anwendung zu optimieren.

Sie können die CodeBuild API oder die AWS CodeBuild Konsole verwenden, um auf die Testergebnisse zuzugreifen. In diesem Beispiel wird gezeigt, wie Sie den Bericht so konfigurieren, dass die Testergebnisse in einen S3-Bucket exportiert werden.

Voraussetzungen

  • Erstellen Sie Ihre Testfälle. Dieses Beispiel geht von der Annahme aus, dass Sie Testfälle in Ihren Testbericht aufnehmen müssen. Sie geben den Speicherort Ihrer Testdateien in der buildspec-Datei an.

    Die folgenden Dateiformate für Testberichte werden unterstützt:

    • Gurke JSON (.json)

    • Einheits-XML (.xml)

    • Einheit XML (.xml)

    • NUnit3-XML (.xml)

    • TestNG XML (.xml)

    • Visual Studio TRX (.trx)

    • Visual Studio TRX XML (.xml)

    Erstellen Sie Ihre Testfälle mit einem beliebigen Test-Framework, das Testberichtdateien in einem dieser Formate erstellen kann (zum Beispiel Surefire JUnit-Plugin, TestNG oder Cucumber).

  • Erstellen Sie einen S3-Bucket und notieren Sie sich dessen Namen. Weitere Informationen finden Sie unter Wie erstelle ich einen S3-Bucket? im Amazon S3 S3-Benutzerhandbuch.

  • Erstellen Sie eine IAM-Rolle und notieren Sie sich ihren ARN. Sie benötigen den ARN, wenn Sie Ihr Build-Projekt erstellen.

  • Wenn Ihre Rolle nicht über die folgenden Berechtigungen verfügt, fügen Sie sie hinzu.

    { "Effect": "Allow", "Resource": [ "*" ], "Action": [ "codebuild:CreateReportGroup", "codebuild:CreateReport", "codebuild:UpdateReport", "codebuild:BatchPutTestCases" ] }

    Weitere Informationen finden Sie unter Berechtigungen für Testberichtoperationen.

Erstellen einer Berichtsgruppe

  1. Erstellen Sie eine Datei namens CreateReportGroupInput.json.

  2. Erstellen Sie einen Ordner in Ihrem S3-Bucket, in den die Testergebnisse exportiert werden.

  3. Kopieren Sie Folgendes in CreateReportGroupInput.json. Verwenden Sie für <bucket-name> den Namen des S3-Buckets. Geben Sie für <path-to-folder> den Pfad zu dem Ordner in Ihrem S3-Bucket ein.

    { "name": "<report-name>", "type": "TEST", "exportConfig": { "exportConfigType": "S3", "s3Destination": { "bucket": "<bucket-name>", "path": "<path-to-folder>", "packaging": "NONE" } } }
  4. Führen Sie im Verzeichnis, das CreateReportGroupInput.json enthält, den folgenden Befehl aus.

    aws codebuild create-report-group --cli-input-json file://CreateReportGroupInput.json

    Die Ausgabe sieht wie folgt aus. Notieren Sie sich den ARN für die reportGroup. Sie verwenden diesen, wenn Sie ein Projekt erstellen, das diese Berichtsgruppe verwendet.

    { "reportGroup": { "arn": "arn:aws:codebuild:us-west-2:123456789012:report-group/<report-name>", "name": "<report-name>", "type": "TEST", "exportConfig": { "exportConfigType": "S3", "s3Destination": { "bucket": "<s3-bucket-name>", "path": "<folder-path>", "packaging": "NONE", "encryptionKey": "arn:aws:kms:us-west-2:123456789012:alias/aws/s3" } }, "created": 1570837165.885, "lastModified": 1570837165.885 } }

Konfigurieren eines Projekts mit einer Berichtsgruppe

Um einen Bericht auszuführen, erstellen Sie zunächst ein CodeBuild Build-Projekt, das mit Ihrer Berichtsgruppe konfiguriert ist. Testfälle, die für Ihre Berichtsgruppe angegeben wurden, werden ausgeführt, wenn Sie einen Build ausführen.

  1. Erstellen Sie eine buildspec-Datei mit dem Namen buildspec.yml.

  2. Verwenden Sie die folgende YAML als Vorlage für Ihre buildspec.yml-Datei. Stellen Sie sicher, dass Sie die Befehle einschließen, die Ihre Tests ausführen. Geben Sie im reports-Abschnitt die Dateien an, die die Ergebnisse Ihrer Testfälle enthalten. In diesen Dateien werden die Testergebnisse gespeichert, auf die Sie zugreifen können CodeBuild. Sie verfallen 30 Tage nach ihrer Erstellung. Diese Dateien unterscheiden sich von den Roh-Testfall-Ergebnisdateien, die Sie in einen S3-Bucket exportieren.

    version: 0.2 phases: install: runtime-versions: java: openjdk8 build: commands: - echo Running tests - <enter commands to run your tests> reports: <report-name-or-arn>: #test file information files: - '<test-result-files>' base-directory: '<optional-base-directory>' discard-paths: false #do not remove file paths from test result files
    Anmerkung

    Anstelle des ARN einer vorhandenen Berichtsgruppe können Sie auch einen Namen für eine nicht erstellte Berichtsgruppe angeben. Wenn Sie einen Namen anstelle eines ARN angeben, CodeBuild wird bei der Ausführung eines Builds eine Berichtsgruppe erstellt. Der Name enthält Ihren Projektnamen und den Namen, den Sie in der buildspec-Datei in folgendem Format angeben: project-name-report-group-name. Weitere Informationen finden Sie unter Erstellen eines Testberichts und Benennung von Berichtsgruppen.

  3. Erstellen Sie eine Datei namens project.json. Diese Datei enthält die Eingabe für den create-project-Befehl.

  4. Kopieren Sie den folgenden JSON in project.json. Geben Sie für source den Typ und den Speicherort des Repositorys ein, das die Quelldateien enthält. Geben Sie für serviceRole den ARN der Rolle an, die Sie verwenden.

    { "name": "test-report-project", "description": "sample-test-report-project", "source": { "type": "CODECOMMIT|CODEPIPELINE|GITHUB|S3|BITBUCKET|GITHUB_ENTERPRISE|NO_SOURCE", "location": "<your-source-url>" }, "artifacts": { "type": "NO_ARTIFACTS" }, "cache": { "type": "NO_CACHE" }, "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/standard:5.0", "computeType": "small" }, "serviceRole": "arn:aws:iam::<your-aws-account-id>:role/service-role/<your-role-name>" }
  5. Führen Sie im Verzeichnis, das project.json enthält, den folgenden Befehl aus. Dadurch wird ein Projekt mit dem Namen test-project erstellt.

    aws codebuild create-project --cli-input-json file://project.json

Ausführen und Anzeigen der Ergebnisse eines Berichts

In diesem Abschnitt führen Sie einen Build des zuvor erstellten Projekts aus. CodeBuild Erstellt während des Erstellungsprozesses einen Bericht mit den Ergebnissen der Testfälle. Der Bericht ist in der von Ihnen angegebenen Berichtsgruppe enthalten.

  1. Führen Sie den folgenden Befehl aus, um einen Build zu starten. test-report-projectist der Name des oben erstellten Build-Projekts. Notieren Sie sich die Build-ID, die in der Ausgabe angezeigt wird.

    aws codebuild start-build --project-name test-report-project
  2. Führen Sie den folgenden Befehl aus, um Informationen zu Ihrem Build abzurufen, einschließlich des ARN Ihres Berichts. Geben Sie für <build-id> Ihre Build-ID an. Notieren Sie sich den Berichts-ARN in der reportArns Eigenschaft der Ausgabe.

    aws codebuild batch-get-builds --ids <build-id>
  3. Führen Sie den folgenden Befehl aus, um Details zu Ihrem Bericht abzurufen. Geben Sie für <report-arn> den Berichts-ARN an.

    aws codebuild batch-get-reports --report-arns <report-arn>

    Die Ausgabe sieht wie folgt aus. Diese Beispielausgabe zeigt, wie viele der Tests erfolgreich waren, fehlschlugen, übersprungen wurden, zu einem Fehler geführt haben oder einen unbekannten Status zurückgaben.

    { "reports": [ { "status": "FAILED", "reportGroupArn": "<report-group-arn>", "name": "<report-group-name>", "created": 1573324770.154, "exportConfig": { "exportConfigType": "S3", "s3Destination": { "bucket": "<your-S3-bucket>", "path": "<path-to-your-report-results>", "packaging": "NONE", "encryptionKey": "<encryption-key>" } }, "expired": 1575916770.0, "truncated": false, "executionId": "arn:aws:codebuild:us-west-2:123456789012:build/<name-of-build-project>:2c254862-ddf6-4831-a53f-6839a73829c1", "type": "TEST", "arn": "<report-arn>", "testSummary": { "durationInNanoSeconds": 6657770, "total": 11, "statusCounts": { "FAILED": 3, "SKIPPED": 7, "ERROR": 0, "SUCCEEDED": 1, "UNKNOWN": 0 } } } ], "reportsNotFound": [] }
  4. Führen Sie den folgenden Befehl aus, um Informationen zu Testfällen für Ihren Bericht aufzulisten. Geben Sie für <report-arn> den ARN Ihres Berichts an. Für den optionalen --filter-Parameter können Sie ein Statusergebnis (SUCCEEDED, FAILED, SKIPPED, ERROR oder UNKNOWN) angeben.

    aws codebuild describe-test-cases \ --report-arn <report-arn> \ --filter status=SUCCEEDED|FAILED|SKIPPED|ERROR|UNKNOWN

    Die Ausgabe sieht wie folgt aus.

    { "testCases": [ { "status": "FAILED", "name": "Test case 1", "expired": 1575916770.0, "reportArn": "<report-arn>", "prefix": "Cucumber tests for agent", "message": "A test message", "durationInNanoSeconds": 1540540, "testRawDataPath": "<path-to-output-report-files>" }, { "status": "SUCCEEDED", "name": "Test case 2", "expired": 1575916770.0, "reportArn": "<report-arn>", "prefix": "Cucumber tests for agent", "message": "A test message", "durationInNanoSeconds": 1540540, "testRawDataPath": "<path-to-output-report-files>" } ] }