Home > Enterprise >  Publish Unit test in Python
Publish Unit test in Python

Time:03-21

I need to publish the result, but could not and have looked through this site and made research but still having issue to publish test result. Do I need to edit certain file similar to the cypress.json to be able to resolve the issue of Publishing. Both Unit test and the coveratge are not publishing any result and files are not found. The code and also the result with error are highlighted below.

Code :

 trigger:
      branches:
        include:
          - #infra-ML-unit-test
    
    variables:
      - group: aws_details #just for backup roles approach
      - group: snowflake-variables
      - group: unit-test-dev
    jobs:
    - job: 'Unit_Test'
      pool:
        vmImage: 'windows-latest' # other options: 'macOS-latest', 'windows-latest', 'ubuntu-latest'
    
      steps:
        - task: UsePythonVersion@0
          inputs:
            versionSpec: '3.8'
          displayName: 'Use Python 3.x'
    
        - task: UsePythonVersion@0
          inputs:
              versionSpec: '3.8'
             
        - script: |
                    pip install virtualenv
                    virtualenv venv
                    source venv/bin/activate  
                    pip install -r requirements.txt
                    python -m pip install --upgrade pip setuptools sqlalchemy snowflake.sqlalchemy
                    echo "$(System.DefaultWorkingDirectory)"
                    echo "$(Build.StagingDirectory)"
                    pip show pandas   
                    python -m pytest  --log-file $SYSTEM_ARTIFACTSDIRECTORY/smoke-qa.log --junitxml=TEST-qa-smoke.xml -rP --excelreport=report.xls  --html=pytest_report.html  --self-contained-html
                    
                    
            #displayName: 'Install python tools'
              
    - job: publish_result
      dependsOn: Unit_Test
      condition: succeededOrFailed()
      steps:  
        - task: PublishTestResults@2
          displayName: 'Publish test result /010.xml'
          inputs:
            testResultsFormat: 'JUnit' # Options: JUnit, NUnit, VSTest, xUnit, cTest
            testResultsFiles: '**/TEST-*.xml' 
            testRunTitle: 010
            mergeTestResults: true
        
    

  

    

Pytest result enter image description here

Unit test and coverage

enter image description here

Is there any file to locate in the repository to update and link with publishing the coverate and test result since the error or warning is mentioning :

**

##[warning]No test result files matching /TEST-*.xml were found.

**

CodePudding user response:

You have two options:

  1. Install the pytest-azurepipelines package before running the tests:
pip install pytest pytest-azurepipelines
  1. Make the PublishTestResults@2 task start the search from $(Pipeline.Workspace):

    - task: PublishTestResults@2
      displayName: 'Publish test result /010.xml'
      inputs:
        testResultsFormat: 'JUnit'
        testResultsFiles: '$(Pipeline.Workspace)/junit/test-*.xml'
    

For more info see Python: Run tests

  • Related