Closed Vizzr closed 4 years ago
is there a reason you need transpiled files alongside the original file? In most setups, the files are transpiled and put into an output directory. If that's not possible in your case, you'll need to manually configure the setup to ignore the transpiled files.
Alternatively, if you want to test the transpiled files, you might not need ts-jest and could just test those directly with jest
can you try to configure the setup to not transpile typescript test files?
in your jest.config.js
, you specify
testMatch: [
'**/test/**/*.test.(ts|js)'
],
this causes jest
to run on js
files as well (also can be caused by transpiled files like @kulshekhar mentioned). This should be only '**/test/**/*.test.(ts)'
if you intend to have only ts
. If you still want to have jest
run on js
files as well, you should specify the regex more specifically.
This question is purely about jest
configuration, it doesn't seem to be related to ts-jest
@kulshekhar Thank you for your quick reply. This fixed my issue. Still weird that the jest configuration picked up the .js files.
Thanks for your reply @ahnpnl. As I've read, the testMatch is only required for loading the test files. This means that it searches for test files in typescript and javascript. It also did not fix my issue, but I could leave out the .js since I do not plan to run .js files
got this error even if test match is set only for ts files
jest.config.ts
const configuration: Config = {
moduleFileExtensions: ['js', 'json', 'ts'],
rootDir: '.',
testRegex: '.*\\.spec\\.ts$', // this testMatch: ['**/*.spec.ts'] This also doesn't work
transform: {
'^.+\\.(t|j)s$': 'ts-jest',
},
collectCoverageFrom: ['**/*.(t|j)s'],
testPathIgnorePatterns: [
'<rootDir>/node_modules/',
'<rootDir>/dist/',
'<rootDir>/.stryker-tmp/',
'.js',
],
moduleNameMapper: {
'^~/(.*)$': '<rootDir>/$1',
'^@lib/common(.*)$': '<rootDir>/libs/common/src/$1',
'^@lib/utils(.*)$': '<rootDir>/libs/utils/src/$1',
'^@app/auth(.*)$': '<rootDir>/apps/auth/src/$1',
'^@app/statistics(.*)$': '<rootDir>/apps/statistics/src/$1',
'^@app/player(.*)$': '<rootDir>/apps/player/src/$1',
},
coveragePathIgnorePatterns: [
'.*\\.(interface|module|schema|entity|repository|dto|enum).ts',
'.*\\.e2e-spec.ts',
'index.ts',
'main.ts',
],
coverageDirectory: './coverage',
testEnvironment: 'node',
roots: ['<rootDir>/apps', '<rootDir>/libs'],
}
Issue
I am running ts-jest to test my code. The problem that I have is that my .ts and transpiled .js are both run. This while I think I ignored the transpiled .js files.
Here is my jest.config.js:
Here is the output table of the test. You can see that there are files in there from the dist folder.
I already tried multiple "solutions" from issues on this github. That's why there's roots and transformIgnorePatterns.
Expected behavior
I expect it to run only my .ts files and that I see no output about the transpiled .js files.
Debug log: