Skip to content

noExportsInTest

  • Rule available since: v1.6.0
  • Diagnostic Category: lint/suspicious/noExportsInTest
  • This rule is recommended, meaning it is enabled by default.
  • This rule doesn’t have a fix.
  • The default severity of this rule is error.
  • This rule belongs to the following domains:
  • Sources:
biome.json
{
"linter": {
"rules": {
"suspicious": {
"noExportsInTest": "error"
}
}
}
}

Disallow using export or module.exports in files containing tests

This rule aims to eliminate duplicate runs of tests by exporting things from test files. If you import from a test file, then all the tests in that file will be run in each imported instance, so bottom line, don’t export from a test, but instead move helper functions into a separate file when they need to be shared across tests.

export function myHelper() {}
describe('a test', () => {
expect(1).toBe(1);
});
code-block.js:1:1 lint/suspicious/noExportsInTest ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Do not export from a test file.

> 1 │ export function myHelper() {}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2 │ describe(‘a test’, () => {
3 │ expect(1).toBe(1);

function myHelper() {}
describe('a test', () => {
expect(1).toBe(1);
});