amazon-web-servicesunit-testingtestingaws-codebuildaws-codestar

AWS CodeBuild Test Report Is Empty


So I created and deployed a tutorial AWS CodeStar project [https://github.com/aamalik7196/Testv4]. The files are created by AWS itself to run a simple Hello World sample project.

the only change i changed is in the buildspec.yml file to create reports for testing as follows:

version: 0.2

phases:
  install:
    runtime-versions:
      python: 3.8
    commands:

      # Upgrade AWS CLI to the latest version
      - pip install --upgrade awscli

  pre_build:
    commands:

      # Discover and run unit tests in the 'tests' directory. For more information, see <https://docs.python.org/3/library/unittest.html#test-discovery>
      - python -m unittest discover tests

  build:
    commands:

      # Use AWS SAM to package the application by using AWS CloudFormation
      - aws cloudformation package --template template.yml --s3-bucket $S3_BUCKET --output-template template-export.yml

      # Do not remove this statement. This command is required for AWS CodeStar projects.
      # Update the AWS Partition, AWS Region, account ID and project ID in the project ARN on template-configuration.json file so AWS CloudFormation can tag project resources.
      - sed -i.bak 's/\$PARTITION\$/'${PARTITION}'/g;s/\$AWS_REGION\$/'${AWS_REGION}'/g;s/\$ACCOUNT_ID\$/'${ACCOUNT_ID}'/g;s/\$PROJECT_ID\$/'${PROJECT_ID}'/g' template-configuration.json

  # post-build:
  #   commands:
  #     - echo In post build phase

# only part added
reports:
  TestReport: # CodeBuild will create a report group called "TestReport".
    files: #Store all of the files
      - '**/*'

artifacts:
  files:
    - template-export.yml
    - template-configuration.json

the repo does contain a folder to perform a simple test. the build and deployment happens successfully [using AWS CodeStar] but when i go to see the reports tab its empty. i know for fact that the test ran as it is in the build log but the reports are empty.


Solution

  • Run a find ./ to confirm the test results file is generated. Also in the 'reports' section, specify the exact file name.

    Here is a sample buildspec I used to check and confirm the functionality:

    version: 0.2
    
    phases:
      install:
        runtime-versions:
          python: 3.8
      pre_build:
        commands:
          - aws --version
      post_build:
        commands:
          - wget https://raw.githubusercontent.com/qmetry/cucumber-javascript-example/master/test-result.json
          - find ./ 
    
    reports:
      rspec:
        files:
          - 'test-result.json'
        file-format: CucumberJson