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.
„Testbericht mit dem AWS CLI“ -Beispiel
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 es verwenden, um Komponententests zu erstellen, oder Sie können ein anderes Tool verwenden, 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 Konsole 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.
Führen Sie das Testberichtsbeispiel aus
Gehen Sie wie folgt vor, um das Testberichtsbeispiel auszuführen.
Themen
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)
-
JUnitXML(.xml)
-
NUnitXML(.xml)
-
NUnit3XML(.xml)
-
TestNG XML (.xml)
-
Visual Studio TRX (.trx)
-
Visual Studio TRX XML (.xml)
Erstellen Sie Ihre Testfälle mit einem beliebigen Testframework, das Berichtsdateien in einem dieser Formate erstellen kann (z. B. JUnit Surefire-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 ihreARN. Sie benötigen dasARN, 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.
Schritt 1: Erstellen Sie eine Berichtsgruppe
-
Erstellen Sie eine Datei namens
CreateReportGroupInput.json
. -
Erstellen Sie einen Ordner in Ihrem S3-Bucket, in den die Testergebnisse exportiert werden.
-
Kopieren Sie Folgendes in
CreateReportGroupInput.json
. Verwenden Sie für
den Namen des S3-Buckets. Geben Sie für<bucket-name>
den Pfad zu dem Ordner in Ihrem S3-Bucket ein.<path-to-folder>
{ "name": "
<report-name>
", "type": "TEST", "exportConfig": { "exportConfigType": "S3", "s3Destination": { "bucket": "<bucket-name>
", "path": "<path-to-folder>
", "packaging": "NONE" } } } -
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 das 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 } }
Schritt 2: Konfigurieren Sie ein Projekt 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.
-
Erstellen Sie eine buildspec-Datei mit dem Namen
buildspec.yml
. -
Verwenden Sie Folgendes 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 imreports
-Abschnitt die Dateien an, die die Ergebnisse Ihrer Testfälle enthalten. In diesen Dateien werden die Testergebnisse gespeichert, mit denen Sie darauf 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 filesAnmerkung
Anstelle ARN des Namens einer vorhandenen Berichtsgruppe können Sie auch einen Namen für eine Berichtsgruppe angeben, die nicht erstellt wurde. Wenn Sie statt eines einen Namen angebenARN, 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 erhalten Sie unter Testberichte erstellen und Benennung von Berichtsgruppen. -
Erstellen Sie eine Datei namens
project.json
. Diese Datei enthält die Eingabe für den create-project-Befehl. -
Kopieren Sie Folgendes JSON in
project.json
. Geben Sie fürsource
den Typ und den Speicherort des Repositorys ein, das die Quelldateien enthält. Geben Sie fürserviceRole
die Rolle ARN 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>
" } -
Führen Sie im Verzeichnis, das
project.json
enthält, den folgenden Befehl aus. Dadurch wird ein Projekt mit dem Namentest-project
erstellt.aws codebuild create-project --cli-input-json file://project.json
Schritt 3: Einen Bericht ausführen und die Ergebnisse anzeigen
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.
-
Führen Sie den folgenden Befehl aus, um einen Build zu starten.
test-report-project
ist 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
-
Führen Sie den folgenden Befehl aus, um Informationen zu Ihrem Build, einschließlich ARN Ihres Berichts, abzurufen. Geben Sie für
Ihre Build-ID an. Notieren Sie sich den Bericht ARN in der<build-id>
reportArns
Eigenschaft der Ausgabe.aws codebuild batch-get-builds --ids
<build-id>
-
Führen Sie den folgenden Befehl aus, um Details zu Ihrem Bericht abzurufen. Geben Sie für
Ihren Bericht anARN.<report-arn>
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": "<amzn-s3-demo-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": [] } -
Führen Sie den folgenden Befehl aus, um Informationen zu Testfällen für Ihren Bericht aufzulisten. Für
, geben Sie den ARN Ihres Berichts an. Für den optionalen<report-arn>
--filter
-Parameter können Sie ein Statusergebnis (SUCCEEDED
,FAILED
,SKIPPED
,ERROR
oderUNKNOWN
) angeben.aws codebuild describe-test-cases \ --report-arn
<report-arn>
\ --filter status=SUCCEEDED|FAILED|SKIPPED|ERROR|UNKNOWNDie 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>
" } ] }