DEV Community

Cover image for Publish Jest report in OneDev
Robin Shen
Robin Shen

Posted on • Edited on

Publish Jest report in OneDev

OneDev is an open source GitLab-like devops platform emphasizing easy-of-use. Jest is a popular javascript testing framework. This tutorial explains how to set up OneDev to publish Jest test report in a CI process.

Run OneDev

Run below command in your terminal on Linux/Mac to start OneDev:

$ docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock -v $(pwd)/onedev:/opt/onedev -p 6610:6610 -p 6611:6611 1dev/server:4.3.3
Enter fullscreen mode Exit fullscreen mode

Then point your browser to http://localhost:6610 to set up OneDev following on-screen instructions.

Add a Demo Project

Now add a project in OneDev using Jest test framework, and push the code. For demonstration purpose, let’s use the react project.

  1. Create a project in OneDev with name react:

    Alt Text

  2. Push the code into newly created project:

    $ git clone https://github.com/facebook/react
    $ cd react
    $ git push http://localhost:6610/react master:master 
    

Run Test and Publish Report

  1. Refresh the page after pushing code, and add build spec for the demo project like below:

    Alt Text

  2. Switch to Edit Source tab to use below source (do not worry about the build spec syntax, you may also use the GUI editor to set up necessary steps and triggers):

    version: 6
    jobs:
    - name: CI
      steps:
      - !CheckoutStep
        name: checkout
        cloneCredential: !DefaultCredential {}
        condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL
      - !CommandStep
        name: build
        image: node:10.16-alpine
        commands:
        - export CI=true
        - 'yarn install '
        - yarn test --json --outputFile=testResults.json
        condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL
      - !PublishJestTestReportStep
        name: publish test report
        reportName: Jest Test Report
        filePatterns: testResults.json
        condition: ALWAYS
      triggers:
      - !BranchUpdateTrigger {}
      retryCondition: never
      maxRetries: 3
      retryDelay: 30
      cpuRequirement: 250m
      memoryRequirement: 128m
      timeout: 3600
    

After build spec is committed, OneDev will run the job automatically. Note that Jest runs slowly on Docker on Mac. The build may take 30~60 minutes to complete. Visit the online demo page to see the report in action if you do not want to wait.

Access Jest Report

After build is finished, the Jest test report will be available in build detail page. Here we can filter tests by status and file path, view test trends by day, or jump to error position in file.

Alt Text

Top comments (0)