mirror of
https://github.com/dorny/test-reporter.git
synced 2025-12-15 13:57:09 +01:00
Add support for rspec
This commit is contained in:
parent
7e5f292040
commit
1a3cfe6b48
11 changed files with 450 additions and 0 deletions
16
__tests__/__outputs__/rspec-json.md
Normal file
16
__tests__/__outputs__/rspec-json.md
Normal file
|
|
@ -0,0 +1,16 @@
|
|||

|
||||
## ❌ <a id="user-content-r0" href="#r0">fixtures/rspec-json.json</a>
|
||||
**3** tests were completed in **0ms** with **1** passed, **1** failed and **1** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[./spec/config/check_env_vars_spec.rb](#r0s0)|1✅|1❌|1⚪|0ms|
|
||||
### ❌ <a id="user-content-r0s0" href="#r0s0">./spec/config/check_env_vars_spec.rb</a>
|
||||
```
|
||||
CheckEnvVars#call when all env vars are defined behaves like success load
|
||||
❌ CheckEnvVars#call when all env vars are defined behaves like success load fails in assertion
|
||||
(#ActiveSupport::BroadcastLogger:0x00007f1007fedf58).debug("All config env vars exist")
|
||||
expected: 0 times with arguments: ("All config env vars exist")
|
||||
received: 1 time with arguments: ("All config env vars exist")
|
||||
✅ CheckEnvVars#call when all env vars are defined behaves like success load logs success message
|
||||
⚪ CheckEnvVars#call when all env vars are defined behaves like success load skips the test
|
||||
```
|
||||
49
__tests__/__snapshots__/rspec-json.test.ts.snap
Normal file
49
__tests__/__snapshots__/rspec-json.test.ts.snap
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`rspec-json tests report from ./reports/rspec-json test results matches snapshot 1`] = `
|
||||
TestRunResult {
|
||||
"path": "fixtures/rspec-json.json",
|
||||
"suites": [
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": "CheckEnvVars#call when all env vars are defined behaves like success load",
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": "/usr/local/bundle/ruby/3.3.0/gems/net-http-0.4.1/lib/net/http.rb:1603:in \`initialize'
|
||||
./config/check_env_vars.rb:11:in \`call'
|
||||
./spec/config/check_env_vars_spec.rb:7:in \`block (3 levels) in <top (required)>'
|
||||
./spec/config/check_env_vars_spec.rb:19:in \`block (4 levels) in <top (required)>'",
|
||||
"line": 11,
|
||||
"message": "(#ActiveSupport::BroadcastLogger:0x00007f1007fedf58).debug("All config env vars exist")
|
||||
expected: 0 times with arguments: ("All config env vars exist")
|
||||
received: 1 time with arguments: ("All config env vars exist")",
|
||||
"path": "./config/check_env_vars.rb",
|
||||
},
|
||||
"name": "CheckEnvVars#call when all env vars are defined behaves like success load fails in assertion",
|
||||
"result": "failed",
|
||||
"time": 0.004411051,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "CheckEnvVars#call when all env vars are defined behaves like success load logs success message",
|
||||
"result": "success",
|
||||
"time": 0.079159625,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "CheckEnvVars#call when all env vars are defined behaves like success load skips the test",
|
||||
"result": "skipped",
|
||||
"time": 0.000023007,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "./spec/config/check_env_vars_spec.rb",
|
||||
"totalTime": undefined,
|
||||
},
|
||||
],
|
||||
"totalTime": 0.19118387,
|
||||
}
|
||||
`;
|
||||
17
__tests__/fixtures/empty/rspec-json.json
Normal file
17
__tests__/fixtures/empty/rspec-json.json
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"version": "3.13.0",
|
||||
"messages": [
|
||||
"No examples found."
|
||||
],
|
||||
"examples": [
|
||||
|
||||
],
|
||||
"summary": {
|
||||
"duration": 0.002514266,
|
||||
"example_count": 0,
|
||||
"failure_count": 0,
|
||||
"pending_count": 0,
|
||||
"errors_outside_of_examples_count": 0
|
||||
},
|
||||
"summary_line": "0 examples, 0 failures"
|
||||
}
|
||||
53
__tests__/fixtures/rspec-json.json
Normal file
53
__tests__/fixtures/rspec-json.json
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
{
|
||||
"version": "3.13.0",
|
||||
"examples": [
|
||||
{
|
||||
"id": "./spec/config/check_env_vars_spec.rb[1:1:1:1:1]",
|
||||
"description": "logs success message",
|
||||
"full_description": "CheckEnvVars#call when all env vars are defined behaves like success load logs success message",
|
||||
"status": "passed",
|
||||
"file_path": "./spec/config/check_env_vars_spec.rb",
|
||||
"line_number": 12,
|
||||
"run_time": 0.079159625,
|
||||
"pending_message": null
|
||||
},
|
||||
{
|
||||
"id": "./spec/config/check_env_vars_spec.rb[1:1:1:1:2]",
|
||||
"description": "fails in assertion",
|
||||
"full_description": "CheckEnvVars#call when all env vars are defined behaves like success load fails in assertion",
|
||||
"status": "failed",
|
||||
"file_path": "./spec/config/check_env_vars_spec.rb",
|
||||
"line_number": 17,
|
||||
"run_time": 0.004411051,
|
||||
"pending_message": null,
|
||||
"exception": {
|
||||
"class": "RSpec::Mocks::MockExpectationError",
|
||||
"message": "(#ActiveSupport::BroadcastLogger:0x00007f1007fedf58).debug(\"All config env vars exist\")\n expected: 0 times with arguments: (\"All config env vars exist\")\n received: 1 time with arguments: (\"All config env vars exist\")",
|
||||
"backtrace": [
|
||||
"/usr/local/bundle/ruby/3.3.0/gems/net-http-0.4.1/lib/net/http.rb:1603:in `initialize'",
|
||||
"./config/check_env_vars.rb:11:in `call'",
|
||||
"./spec/config/check_env_vars_spec.rb:7:in `block (3 levels) in \u003ctop (required)\u003e'",
|
||||
"./spec/config/check_env_vars_spec.rb:19:in `block (4 levels) in \u003ctop (required)\u003e'"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "./spec/config/check_env_vars_spec.rb[1:1:1:1:4]",
|
||||
"description": "skips the test",
|
||||
"full_description": "CheckEnvVars#call when all env vars are defined behaves like success load skips the test",
|
||||
"status": "pending",
|
||||
"file_path": "./spec/config/check_env_vars_spec.rb",
|
||||
"line_number": 27,
|
||||
"run_time": 2.3007e-05,
|
||||
"pending_message": "Temporarily skipped with xit"
|
||||
}
|
||||
],
|
||||
"summary": {
|
||||
"duration": 0.19118387,
|
||||
"example_count": 3,
|
||||
"failure_count": 1,
|
||||
"pending_count": 1,
|
||||
"errors_outside_of_examples_count": 0
|
||||
},
|
||||
"summary_line": "3 examples, 1 failures, 1 pending"
|
||||
}
|
||||
45
__tests__/rspec-json.test.ts
Normal file
45
__tests__/rspec-json.test.ts
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
import * as fs from 'fs'
|
||||
import * as path from 'path'
|
||||
|
||||
import {RspecJsonParser} from '../src/parsers/rspec-json/rspec-json-parser'
|
||||
import {ParseOptions} from '../src/test-parser'
|
||||
import {getReport} from '../src/report/get-report'
|
||||
import {normalizeFilePath} from '../src/utils/path-utils'
|
||||
|
||||
describe('rspec-json tests', () => {
|
||||
it('produces empty test run result when there are no test cases', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'empty', 'rspec-json.json')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: []
|
||||
}
|
||||
|
||||
const parser = new RspecJsonParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
expect(result.tests).toBe(0)
|
||||
expect(result.result).toBe('success')
|
||||
})
|
||||
|
||||
it('report from ./reports/rspec-json test results matches snapshot', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'rspec-json.json')
|
||||
const outputPath = path.join(__dirname, '__outputs__', 'rspec-json.md')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: ['test/main.test.js', 'test/second.test.js', 'lib/main.js']
|
||||
}
|
||||
|
||||
const parser = new RspecJsonParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
expect(result).toMatchSnapshot()
|
||||
|
||||
const report = getReport([result])
|
||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||
fs.writeFileSync(outputPath, report)
|
||||
})
|
||||
})
|
||||
Loading…
Add table
Add a link
Reference in a new issue