Git Product home page Git Product logo

jest-junit's People

Contributors

alde avatar andorfermichael avatar andrcuns avatar azzlack avatar cisum-la avatar crudo avatar danjamin avatar dependabot[bot] avatar eps1lon avatar iife avatar johanbrorson avatar marvinroger avatar mastrzyz avatar maxkomarychev avatar mtsmfm avatar okize avatar palmerj3 avatar phawxby avatar pjona avatar samertm avatar samtheisens avatar sarod avatar scttcper avatar sezanzeb avatar sginter avatar simenb avatar stevenxu-db avatar techieshark avatar wedvich avatar yangshun avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

jest-junit's Issues

addFileAttribute doesn not seem to be working

I was trying to make time splitting to work on circle ci and addFileAttribute does not work
jest-junit: ^9.0.0
I have this test file

describe('quick', () => {
    it('takes 1 second to finish', async () => {
        await new Promise(resolve => setTimeout(resolve, 1*1000))    })
})

and

reporters in jest:

    reporters: [
        'default',
        [
            'jest-junit',
            {
                outputDirectory: 'test-results/junit',
                addFileAttribute: true,
            },
        ],
    ],

the output I am getting:

<?xml version="1.0" encoding="UTF-8"?>
<testsuites name="jest tests" tests="1" failures="0" time="2.006">
  <testsuite name="quick" errors="0" failures="0" skipped="0" timestamp="2019-11-28T09:37:09" time="1.711" tests="1">
    <testcase classname="quick takes 1 second to finish" name="quick takes 1 second to finish" time="1.006">
    </testcase>
  </testsuite>
</testsuites>

Stack trace in reporter isn't a relative path

Jest CLI output:
at Object.<anonymous> (src/client/reducers/pages/xxx.test.js:1324:26

Jest-Junit output:
Local:
at Object.&lt;anonymous&gt; (/Users/joelbrenstrum/Development/Projects/xxx/xxx/src/client/reducers/pages/xxx.test.js:1324:26)
Azure Dev Ops:
Object.<anonymous> (/home/vsts/work/1/s/xxx/src/client/reducers/pages/xxx.test.js:1060:72)

Is it possible to get the relative path put into the stack trace?
We use Azure dev ops and these links generate as clickable but dont lead anywhere.

Jest tests return exit code 0 after failing tests

This makes the package unusable for us in a CI environment - test steps rely on an exit code of 1 to properly signal failure. Perhaps related to winterbe/jest-teamcity-reporter#6?

01:05 PM $ npm --version
3.10.9

01:05 PM $ node --version
v7.2.1

01:06 PM $ yarn --version
0.18.1

"jest": "^18.1.0"

With jest-junit configured as the testResultsProcessor:

$ yarn run test:ci   # translates to 'jest --coverage --runInBand'
Test Suites: 2 failed, 313 passed, 315 total
Tests:       3 failed, 1416 passed, 1419 total
Snapshots:   299 passed, 299 total
Time:        40.853s
Ran all test suites.
✨  Done in 42.16s.

$ echo $?
0

Without "testResultsProcessor": "./node_modules/jest-junit" in my jest config:

$ yarn run test:ci   # translates to 'jest --coverage --runInBand'
Test Suites: 2 failed, 313 passed, 315 total
Tests:       3 failed, 1416 passed, 1419 total
Snapshots:   299 passed, 299 total
Time:        36.84s, estimated 39s
Ran all test suites.
(node:64662) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 43): undefined
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

$ echo $?
1

Jenkins test result report broken after upgrading to v6

After upgrading to v6, Jenkins/xUnit fail to read the test result reports (complaining about the file attribute in testcase):

WARNING: At line 3 of file:/var/lib/jenkins/workspace/[...]/target/junit.xml:cvc-complex-type.3.2.2: Attribut 'file' darf nicht in Element 'testcase' vorkommen.
[...]
FATAL: The result file '/var/lib/jenkins/workspace/[...]/target/junit.xml' for the metric 'JUnit' is not valid. The result file has been skipped.

I guess it has to do with #71.

Anyone else experiencing this problem?


Jenkins: v2.150.1
xUnit plugin: v.2.3.2

Add coverage output generated xml

Hi there,

I use this project very successfully on our CI in combination with create-react-app;

yarn test -- --testResultsProcessor jest-junit

Now I was thinking if it is possible to add the code coverage report to the generated junit.xml? Thanks in advance for any help!

Cheers!

Negative test suite timing

I am currently seeing some issues running jest with the jest-junit reporter. I am getting a junit xml file back that is properly formatted but contains invalid data for instance I am seeing this:

<testsuite name="src/__tests__/Example.test.js" errors="0" failures="0" skipped="1" timestamp="2019-10-02T21:35:57" time="-11770557.774" tests="1">
    <testcase classname="Example thing" name="Example thing" time="0.001">
      <skipped/>
    </testcase>
  </testsuite>

Notice the time="-11770557.774" bit and the fact that it can't possible have a negative number for the amount of time a test took.

This is just one example and at fist I thought it was just because the test was skipped and the timing was so close that the logic resulted in a rounding error or something similar. However it also appears on tests that are successful/failed.

That being said I looked at the code specifically this line: https://github.com/jest-community/jest-junit/blob/v8.0.0/utils/buildJsonResults.js#L84 and based on this logic it seems that the suite.perfStats.end is equal to 0 otherwise I have no idea why/how the resulting return from the executionTime function could ever really be negative.

I am not 100% certain this is an issue with the jest-junit or if the issue is really with jest itself, but I can't find any existing issues referencing this. Any guidance would be extremely helpful.

Version Details:

  • jest: 24.7.1
  • jest-junit: 8.0.0
  • jest-dom: 4.0.0
  • jest-environment-jsdom-fourteen 0.1.0
  • jest-resolve 24.7.1
  • jest-watch-typeahead 0.3.0

output: Support <rootDir>

Whenever I run a single test via IntelliJ IDEA (also applies to WebStorm) the resulting junit.xml is created in the directory where the test file exists instead of at the root of my project.

It would be great if "output" supported something like Jest's "<rootDir>" which several of its path-like options support (see https://facebook.github.io/jest/docs/en/configuration.html).

e.g. package.json snippet:

  "jest-junit": {
    "output": "<rootDir>/junit.xml"
  }

"<rootDir>/junit.xml" would also probably be a sensible default rather than "./junit.xml".

Thank you.

Nested testsuites instead of ancestors

Would it be possible to use ancestors as a way of defining nested testsuites?

Ideally, what I'd like to achieve:

  • Each file is a testsuite
    • Name is based on the top-level describe inside the file, if there's only one top-level describe.
    • Name is based on the filename, if there's multiple top-level describe.
  • Each describe is their own nested testsuite, under the file testsuite.
    • For every child describe, they are nested under the parent describe as a new testsuite.

Testsuit no longer has the tests count attribute

It seems that in the latest release (3.2.1) the format of the xml report file has changed, omitting the tests attribute of the testsuit containing the amount of tests that were ran.
This breaks our CI since our Jenkins publisher is relying on this attribute.
Looking at the code, it seems that there's no way to configure the reporter to include it.
Is there a plan to introduce it back again?

Not reading jest.config.js

Hello, I have setup my jest to use the jest config, however jest-junit is ignoring it and using all default values. However if I add it to the package.json it works. Is there something I need to do to have it point to the jest config and not the package.json?

I copied and pasted what was in the instructions

License file is not correct

The license file for this package isn't quite right..... Looks like you need to update it to correctly tell people the year and name of copyright owner....

Copyright {yyyy} {name of copyright owner}

Templated output

It would be great if we could template the name of the output file.

That way projects that utilize yarn workspaces can set a single output dir with changing titles

"jest-junit": {
    "output": "./test-{title}.xml",
  }

Node v4 support

Hi @palmerj3, thanks for you reporter.

Is there a reason why you require node >=5? I was trying to run in on node 4 (v4.8.0) and it worked too.

We have node 4 on our CI, and it would be great, if we could lower the required node in your package.json to 4.

Thanks!

Include tests loading failures in report

Hi,

I ran few test suites, most failed to run due to compilation error (test didnt actually ran). One suite ran successfully with 2 tests that passed.

The output .xml file reports 2 tests where both succeeded. Doesn't it make sense to report all the failing tests in the tests suites as failures (Even though they didn't run, they failed to compile)?

Yoni

Support mapping function to classNameTemplate

When using junit report with java the classname contains the package name and the class name.
Tools like Jenkins CI assume this format and group test result by package name by using everything before the last . in the classname as a package name.

When using junit-jest it would be useful to support mapping the file folder to the "package" name but / would need to be replaced by ..

This is currently not possible with the templates as string but could be achieved if the classNameTemplate would accept a javascript function taking as arguments an object with a poperty for each variables accepted by templates ( {classname}, {title}, {filepath}, {filename}, {displayName}) and return a string

the jestconfig could then look something like

module.exports = {
   ...baseConfig,
   "reporters": [
      ["jest-junit", {
         classNameTemplate: function (variables) {
            const folder = variables.filepath.substr(0, variables.filepath.length - variables.filename.length)
            return folder.replace(/\//g, '.');
         }
      }]
   ]
};

It could also be nice to have an additional filefolder variable to avoid doing substrings in the function.

Thanks for the project!

Not working with projects?

Hi,

Jest now has the ability to specify multiple projects: https://jestjs.io/docs/en/configuration.html#projects-array-string-projectconfig

When I try to use this with jest-junit, I don't seem to have any junit files generated. No errors are thrown.

As a workaround, I'm running each project separately in CI with --config settings, eg;

// package.json: 
"jest": {
  "projects": ["foo.jest.config.js", "bar.jest.config.js"]
}

// ci script: 
JEST_JUNIT_OUTPUT=foo-tests.xml yarn jest --config foo.jest.config.js
JEST_JUNIT_OUTPUT=bar-tests.xml yarn jest --config bar.jest.config.js

// in development
yarn jest // runs both foo and bar

I haven't done any digging into why this may be happening.

Do you think this can be fixed?

classNameTemplate not working

The config option for classNameTemplate doesn't seem to work when using a function.

jest reporters:

reporters: [
      'default',
      [
        'jest-junit',
        {
          classNameTemplate: vars => {
            return vars.classname.toUpperCase();
          },
        },
      ],
    ]

test file (also tried wrapping with describe('App', () =>):

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
it('renders without crashing', () => {
  const div = document.createElement('div');
  ReactDOM.render(<App />, div);
  ReactDOM.unmountComponentAtNode(div);
});

junit.xml

<testsuites name="jest tests" tests="1" failures="0" time="1.175">
  <testsuite name="undefined" errors="0" failures="0" skipped="0" timestamp="2018-08-15T22:18:04" time="0.495" tests="1">
    <testcase classname=" renders without crashing" name=" renders without crashing" time="0.027">
    </testcase>
  </testsuite>
</testsuites>

Expected value of classname to be uppercased.

However, it does work when using a string, eg:

<testsuites name="jest tests" tests="1" failures="0" time="1.191">
  <testsuite name="undefined" errors="0" failures="0" skipped="0" timestamp="2018-08-15T22:19:05" time="0.494" tests="1">
    <testcase classname="foo" name=" renders without crashing" time="0.027">
    </testcase>
  </testsuite>
</testsuites>

jest reporters:

reporters: [
      'default',
      [
        'jest-junit',
        {
          classNameTemplate: 'foo',
        },
      ],
    ]

Test reports at root element

I need the test failures to report at the root element of the tree. Is there a way to report if a failure occurred on the root xml element?

Current:

<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
  <testsuite id="0" name="/app/src/Test.test.js" errors="0" package="/app/src/Test.test.js" hostname="localhost" tests="1" failures="0" time="0.192" timestamp="2018-02-02T16:16:46">
   ...
  </testsuite>
  <testsuite id="1" name="/app/src/App.test.js" errors="0" package="/app/src/App.test.js" hostname="localhost" tests="1" failures="0" time="0.353" timestamp="2018-02-02T16:16:46">
    ...
  </testsuite>
</testsuites>

Desired:

<?xml version="1.0" encoding="UTF-8"?>
<testsuites failures="0">
  <testsuite id="0" name="/app/src/Test.test.js" errors="0" package="/app/src/Test.test.js" hostname="localhost" tests="1" failures="0" time="0.192" timestamp="2018-02-02T16:16:46">
   ...
  </testsuite>
  <testsuite id="1" name="/app/src/App.test.js" errors="0" package="/app/src/App.test.js" hostname="localhost" tests="1" failures="0" time="0.353" timestamp="2018-02-02T16:16:46">
    ...
  </testsuite>
</testsuites>

Notice the failures attribute on the first element.

Any help is appreciated.

reporter options are blitzed if one of the properties of the options object is a function

If I pass these options based on the example in the README

// jest.config.js
{
  reporters: [
    "default",
      [
        "jest-junit",
        {
          a: 'b',
          classNameTemplate: (vars) => {
            throw new Error('fook');
            return vars.classname.toUpperCase();
          }
        }
      ]
  ]
}

And I log the options in the JestJunit constructor function, it logs this:

[ [ 'default', {} ],
  [ '/Users/developer15/projects/scot.disclosure.digital-frontend/node_modules/jest-junit/index.js',
    { a: 'b' } ] ]

So the function gets blitzed because I guess JSON.stringify is called somewhere.

Did this ever work?

Add Test steps to add granularity to the test report

I would like to know if it would be possible to add more granularity in the junit.xml report. I would like to list the test step each test need to go through. So that, in my report, i could see all the step that happen and get the context right away if there is a failure. Is this something possible ?

I try to add assertion at each steps and also just do a test for each step. But it doesn't work. In the case of the assertion it only show the failed one. And for the later one, Jest does not guarantee the order in which a test is ran within a test suite.

Is there a good way to use this with projects?

This reporter works with the jest projects array but all that happens is the last project to run overwrites the file. I'd either like it to append to the original file or create separate files. Is there a way to do this?

Don't fail if application is located in root directory

HI,

library throws an error if application is located in root directory.

Error: Unable to locate package.json starting at /
    at getAppOptions (/node_modules/jest-junit/utils/getOptions.js:40:9)
    at module.exports (/node_modules/jest-junit/utils/getOptions.js:44:55)
    at module.exports (/node_modules/jest-junit/index.js:23:19)

I came across this error then tried to get report while running tests in docker container. There is a simple workaround this problem, which is changing working dir to non-root directory, so I'm not sure that it should be fixed.

Add option to output xml to stdout

I'm working on a project that has some custom tooling around running tests and being able consume junit output via stdout would make things a lot easier. Would you be interested in a PR to add an option to send output to stdout instead of a file?

Deleted

@MRolandd currently jest does not differentiate between an "error" and a "failure" so currently that portion is unused.

It's a feature I've wanted to add to jest for a while and eventually will do - it's a bit complex of a change in jest to make that happen.

Originally posted by @palmerj3 in #85 (comment)

Ok, then it is a way to parse syntax errors from the code as failures? If I have a syntax error my log file is empty. Just with an empty

Is there a way to output the data as inner xml, instead of as attributes?

For example, my current output is this:

<testcase classname="classname" name="classname" time="0.771"> </testcase>

But I want my output to look like this instead:

`

  <classname>classname</classname>

  <name>classname</name>

  <time>0.771</time>
`

I ask because I need to convert this file to a csv and can't find a package that will read from the attributes and not the inner xml.

Use Filename as Testsuite name?

Had an idea for a feature that I wanted to talk about before just trying to code something.

One of the disconnects between how this library and how JUnit seems to typically export test results is around the name of the testsuite. It seems that testsuites from typical maven executions (failsafe, surefire) use the filename as the name of the testsuite. Jest-junit is using either the descriptor assigned in the describe(...) code blocks or the file path depending on the configuration. This makes our jest-junit reports look very different than our other JUnit test reports

It would be great to be able to specify either the default behavior (using the describe(...) descriptor, using the file path or using the file name. An example might be:

"jest-junit" : {
     "suiteNameTemplate": "{filename|filepath|ancestorTitles}"  
}

This name would be similar to the other possible configuration values such as classNameTemplate and titleTemplate.

The biggest catch here would be to understand the behavior of using this proposed idea with the existing usePathForSuiteName property. Maybe allow this property to override that existing value if set for a certain release number until potentially deprecating?

Let me know your thoughts!

console.log not outputing in XML

I created a jest config file that looks like this:

{
            \"globals\":{
                \"src_dir\": \"$src_dir\",
                \"src_ref_dir\":\"$src_ref_dir\"
                },
                \"reporters\": [
                \"default\",
                [   \"jest-junit\", {
                    \"suiteName\": \"tests\",
                    \"outputDirectory\": \"$user_dir/log\",
                    \"outputName\": \"log.xml\",
                    \"classNameTemplate\": \"{classname}\",
                    \"titleTemplate\": \"test_{title}\",
                    \"ancestorSeparator\": \" › \",
                    \"suiteNameTemplate\":\"MainTest\",
                    \"usePathForSuiteName\": \"false\" 
                    } ]
                ],
                \"testResultsProcessor\": \"jest-junit\"
            }";

(I write it dynamically for each test).

and my jest exec cmd is : "$(npm bin)/jest --testRegex MainTest.js --findRelatedTests $test_file --config=$conf_file --globals --json --rootDir=$rootDir --notify 2>&1"

I tried different thing but couldn't get console.log to show an output. Something like PHPUnit has with
<system-out>output print</system-out> in it's XML output.
Any solution?

PS: forgot to mantion. I want the console.log to output from the file to be tested, not from the test file

jest-junit hangs jest if not executed from the project root

on a updated windows 10 64bit,
with node 10.16.3,
with jest 1.20,

with a very simple test


describe('Generic Test', () => {

    test("test1", () => {
        expect(2).toBe(2)
    })

});

with this jest.config.js file


    module.exports = {
        preset: "jest-puppeteer",
        setupFilesAfterEnv: [  // NOT setupFiles
            "./custom-configuration.js"
        ],
        reporters: ["default","jest-junit"]
    };

if i run "jest" from the root of the project,

test pass and jest quit creating the xml.

if i run from external path, jest pass the test, then it hangs.

jest --config c:\src\e2e\jest.config.js --rootDir c:\src\e2e\

image

the problem is related with the reporter,

if i remove the reporter,

everything works.

any suggestion?

thanks.

console support

I'm not sure if this is possible but it would be a huge benefit if the results of any console.log statements, etc. were made available inside of <testcase> elements using <system-out> and <system-err>.

Why is testResultsProcessor support deprecated?

I'm wondering why jest --ci --testResultsProcessor="jest-junit" is a deprecated pattern? It's super useful to set the results processor at the command line for CI environments (no need to have the junit file artifact generated when running tests locally).

Cannot change junit xml testsuite attributes

i have my package.json as below:

"scripts": {
        "start": "react-scripts start",
        "build": "react-scripts build",
        "test": "react-scripts test --env=jsdom",
        "test:cov": "yarn test -- --coverage",
        "test:ci": "react-scripts test --env=jsdom --reporters=jest-junit ./node_modules/jest-junit -- 
         coverage ",
        "eject": "react-scripts eject",
        "lint": "eslint src",
        "dev": "node server & react-scripts start",

        "jest-junit": {
          "reporters":["jest-junit"],
           "output": "./junit.xml",
           "classNameTemplate": "{classname}-{title}",
           "titleTemplate": "{classname}-{title}",
           "ancestorSeparator": "",
           "suiteNameTemplate": "{filename|filepath|ancestorTitles}",
           "usePathForSuiteName": "true"
       }
    },

But junit-xml file still uses the default string present in describe() of test cases. can you help me how can i configure junit-xml file.

Allow customization of separator between ancestor titles

In the code, I saw the ancestorTitles are concatenated using a space. In Jest, by default they use the character to concatenate the strings between hierarchies and I think it would be good to allow users to customize this character.

If you are agreeable with this I can create a PR to implement this. I'm thinking of implementing this through the env variable like how the class name template is done.

Junit log errors

How to display syntax errors in Junit log? Or exactly how does the <error> tag appear? If I fail a test it is a <failure>.
In PHP unit the <error> tag appears when There is a syntax error

Shorten output of the newly implemented console logging junit xml

Recently console logging was implemented as part of 7.0.0 , We really like this feature and are about to add it to our test suite. However, we noticed that currently the logged object is unnecessarily long with redundant info, see below:
{
"message": "2019-07-31 15:02:50:360 WorkerID:1 \u001b[32minfo\u001b[39m: Generated headers for account \n",
"origin": "/Users/s/Documents/dev/qa-automation/node_modules/winston/lib/winston/transports/console.js:79",
"type": "log"
}

Instead it would be nice if only the message value is displayed in the logs, see below:
"2019-07-31 15:00:53:930 WorkerID:1 \u001b[32minfo\u001b[39m: Generated headers\n",

Another option would be provide a way to switch between the two options,e.g. full_console_log = true/false in jest-junit in case the full form has benefit for other users. I was able to get the shorttened logs by changing below line 77 in index.js
consoleBuffer[testResult.testFilePath] = testResult.console.map(item => item.message)
The shorter logging also has the benefit of smaller log file.

Appreciate any thoughts on the above.

"Test suite failed to run" does not report as a test failure in the xml output

Considering the following console output

 PASS  __tests__\src\common\services\index.test.js
 PASS  __tests__\src\common\services\support.test.js
 FAIL  __tests__\src\features\product\routers\product.js
  ● Test suite failed to run

    brand-engine\src\common\react-app\src\common\templates\cta.mustache:1
    ({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){<a class="hello" href="{{ href }}">{{ hrefText }}</a>
                                                                                             ^

    SyntaxError: Unexpected token <

      4 | import FrameworkTemplate from '../../../common/framework-template';
      5 |
    > 6 | import * as cta from '../../../common/templates/cta.mustache';
      7 |
      8 | class Home extends React.Component {
      9 |       render() {

      at ScriptTransformer._transformAndBuildScript (node_modules/jest-runtime/build/script_transformer.js:307:17)
      at Object.<anonymous> (src/common/react-app/src/features/test/components/home.js:6:38)
      at Object.<anonymous> (src/common/react-app/src/app.js:6:39)
 PASS  __tests__\src\common\framework-engine\index.test.js

There is no output in the junit.xml referencing product.js test suite providing no indication it failed. Everything else is in there as expected.

Support project displayName

I'm running some Jest tests multiple times with different environment options. I have several files that look like the following but with different config file names, etc.:

module.exports = {
  name: "Windows 10 Chrome 62.0 1024x768",
  displayName: "Windows 10 Chrome 62.0 1024x768",
  testEnvironment: "<rootDir>/WebDriverEnvironment.js",
  testEnvironmentOptions: {
    serverUrl: "http://hub-cloud.browserstack.com/wd/hub",
    capabilities: {
      "os": "Windows",
      "os_version": "10",
      "browserName": "Chrome",
      "browser_version": "62.0",
      "resolution": "1024x768",
      "browserstack.user": process.env.BROWSERSTACK_USER,
      "browserstack.key": process.env.BROWSERSTACK_ACCESSKEY,
      "browserstack.local": true,
    }
  }
};

They are each named something like remote-{platform}-{browser}-{resolution}.config.js so I have a final config file to run them all:

jest.config.js

module.exports = {
  globalSetup: "<rootDir>/global.setup.js",
  globalTeardown: "<rootDir>/global.teardown.js",
  setupTestFrameworkScriptFile: "<rootDir>/test-framework.setup.js",
  projects: [
    "<rootDir>/remote-*.config.js"
  ],
  testResultsProcessor: "jest-junit"
};

The problem I am having though is that the junit.xml generated contains <testsuite name="undefined"... 😢

Would is be possible to use the displayName for each project as the testSuiteName? If not, maybe the config file name/path? Thanks.

See also https://facebook.github.io/jest/docs/en/configuration.html#projects-array-string-projectconfig

Error: Cannot find module ''jest-junit''

I have installed jest and jest-junit as devDependencies in my project. However when I try to run the command from the example, I get the following error.

● Validation Error:

  Module 'jest-junit' in the testResultsProcessor option was not found.

  Configuration Documentation:
  https://facebook.github.io/jest/docs/configuration.html

I am using the command

jest --ci --testResultsProcessor='jest-junit'

in the scripts section of my package.json. Please let me know if you need any additional information or can't reproduce the issue.

Unable to specify only 'outputName'

If only specifying outputName to change the name of the file, this value gets ignored.

This is because there's a strict check on outputDirectory being null (which is the default value)

This can be confusing, as if you just want to rename the file, you wouldn't necessarily think about setting the directory as well.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.