Publish Jest report in OneDev

Robin Shen
3 min readJan 10, 2021

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 (this command is for demonstration purpose, follow installation guide for daily use):

$ 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

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:

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:

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.

--

--