Jest typescript测试运行两次,一次用于ts文件,一次用于js文件

gpnt7bae  于 2023-11-15  发布在  Jest
关注(0)|答案(3)|浏览(126)

我开始使用Jest和typescript编写一些测试,但是我得到了一些错误,问题似乎是测试运行了两次,一次是针对ts文件,第二次是针对js文件。
typescript测试通过了,但是编译的JavaScript测试没有通过。

yarn run v1.5.1
$ jest
 PASS  src/__tests__/some.test.ts (7.955s)
  ● Console

    console.log src/lib/google-analytics/ga-api.ts:75
      Succsess!!
    console.log src/__tests__/some.test.ts:42
      { reports: { batchGet: [Function: batchGet] } }

 FAIL  dist/__tests__/some.test.js
  ● Console

    console.log dist/lib/google-analytics/ga-api.js:64
      Reject

  ● it gets a full google analytics report

    No key or keyFile set.

      68 |
      69 |         return new Promise((resolve, reject) => {
    > 70 |             jwtClient.authorize((err: any) => {
      71 |                 if (err) {
      72 |                     console.log("Reject");
      73 |                     reject(err);

      at GoogleToken.<anonymous> (node_modules/googleapis/node_modules/gtoken/src/index.ts:102:13)
      at step (node_modules/googleapis/node_modules/gtoken/build/src/index.js:42:23)
      at Object.next (node_modules/googleapis/node_modules/gtoken/build/src/index.js:23:53)
      at node_modules/googleapis/node_modules/gtoken/build/src/index.js:17:71
      at Object.<anonymous>.__awaiter (node_modules/googleapis/node_modules/gtoken/build/src/index.js:13:12)
      at GoogleToken.Object.<anonymous>.GoogleToken.getTokenAsync (node_modules/googleapis/node_modules/gtoken/build/src/index.js:102:16)
      at GoogleToken.Object.<anonymous>.GoogleToken.getToken (node_modules/googleapis/node_modules/gtoken/src/index.ts:93:17)
      at JWT.<anonymous> (node_modules/googleapis/node_modules/google-auth-library/src/auth/jwtclient.ts:181:37)
      at step (node_modules/googleapis/node_modules/google-auth-library/build/src/auth/jwtclient.js:57:23)
      at Object.next (node_modules/googleapis/node_modules/google-auth-library/build/src/auth/jwtclient.js:38:53)
      at node_modules/googleapis/node_modules/google-auth-library/build/src/auth/jwtclient.js:32:71
      at Object.<anonymous>.__awaiter (node_modules/googleapis/node_modules/google-auth-library/build/src/auth/jwtclient.js:28:12)
      at JWT.Object.<anonymous>.JWT.refreshToken (node_modules/googleapis/node_modules/google-auth-library/build/src/auth/jwtclient.js:181:16)
      at JWT.<anonymous> (node_modules/googleapis/node_modules/google-auth-library/src/auth/jwtclient.ts:154:31)
      at step (node_modules/googleapis/node_modules/google-auth-library/build/src/auth/jwtclient.js:57:23)
      at Object.next (node_modules/googleapis/node_modules/google-auth-library/build/src/auth/jwtclient.js:38:53)
      at node_modules/googleapis/node_modules/google-auth-library/build/src/auth/jwtclient.js:32:71
      at Object.<anonymous>.__awaiter (node_modules/googleapis/node_modules/google-auth-library/build/src/auth/jwtclient.js:28:12)
      at JWT.Object.<anonymous>.JWT.authorizeAsync (node_modules/googleapis/node_modules/google-auth-library/build/src/auth/jwtclient.js:156:16)
      at JWT.Object.<anonymous>.JWT.authorize (node_modules/googleapis/node_modules/google-auth-library/src/auth/jwtclient.ts:147:12)
      at Promise (src/lib/google-analytics/ga-api.ts:70:23)
      at GoogleAnalyticsApiClient.getGCPAuthToken (src/lib/google-analytics/ga-api.ts:69:16)
      at GoogleAnalyticsApiClient.<anonymous> (src/lib/google-analytics/ga-api.ts:52:42)
      at dist/lib/google-analytics/ga-api.js:7:71
      at Object.<anonymous>.__awaiter (dist/lib/google-analytics/ga-api.js:3:12)
      at GoogleAnalyticsApiClient.getGaApiClient (dist/lib/google-analytics/ga-api.js:50:16)
      at Object.<anonymous>.test (src/__tests__/some.test.ts:41:14)

Test Suites: 1 failed, 1 passed, 2 total
Tests:       1 failed, 1 passed, 2 total
Snapshots:   0 total
Time:        9.516s
Ran all test suites.
error An unexpected error occurred: "Command failed.
Exit code: 1
Command: sh
Arguments: -c jest
Directory: /Users/carlosbernal/Documents/Grability/DataScience/ga-downloader
Output:
".
info If you think this is a bug, please open a bug report with the information provided in "/Users/carlosbernal/Documents/Grability/DataScience/ga-downloader/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

字符串
这在ts-jest中是正常的还是我缺少了一些额外的配置?

wvyml7n5

wvyml7n51#

这在ts-jest中是正常的还是我缺少了一些额外的配置
你应该只将roots设置为/src。下面是一个很好的配置:

module.exports = {
  "roots": [
    "<rootDir>/src"
  ],
  "transform": {
    "^.+\\.tsx?$": "ts-jest"
  },
  "testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$",
  "moduleFileExtensions": [
    "ts",
    "tsx",
    "json"
  ],
}

字符串
我也只测试.tsx?文件(没有.jsx?);)

rkue9o1l

rkue9o1l2#

遇到同样的问题,在Typescript中使用aws cdk,为了防止它,我将.js添加到了jest-tag.js中的testPathIgnorePatterns属性中

module.exports = {
  preset: 'ts-jest',
  testEnvironment: 'node',
  testPathIgnorePatterns: [".d.ts", ".js"]
};

字符串

hgb9j2n6

hgb9j2n63#

如果使用IDE,您可能需要禁用这些IDE中发生的.ts.js编译,以避免生成.js文件,从而导致问题。
对于IntelliJ/Webstorm用户:请参阅首选项|语言和框架|TypeScript,在更改时重新编译(取消选中)

相关问题