Javascript SyntaxError:在TypeScript中使用Aurelia运行jest测试时出现意外标记
刚刚使用Aurelia cli创建了一个新的TypeScript Aurelia项目。 已安装引导,并使用导入将引导css包含在app.ts中Javascript SyntaxError:在TypeScript中使用Aurelia运行jest测试时出现意外标记,javascript,typescript,unit-testing,jestjs,aurelia,Javascript,Typescript,Unit Testing,Jestjs,Aurelia,刚刚使用Aurelia cli创建了一个新的TypeScript Aurelia项目。 已安装引导,并使用导入将引导css包含在app.ts中 import 'bootstrap/dist/css/bootstrap.min.css'; import '../../static/assets/css/app.scss'; import { routes } from './routes'; interface IApp { message: string; } export class
import 'bootstrap/dist/css/bootstrap.min.css';
import '../../static/assets/css/app.scss';
import { routes } from './routes';
interface IApp {
message: string;
}
export class App implements IApp{
message = 'Hello World!';
}
现在,当我运行测试时,我得到错误意外标记,如下所示
yarn test
# and the output contains
yarn run v1.12.3
$ nps test
nps is executing `test` : nps test.jest
nps is executing `test.jest` : node node_modules/rimraf/bin.js test/coverage-jest && jest
ts-jest[config] (WARN) TypeScript diagnostics (customize using `[jest-config].globals.ts-jest.diagnostics` option):
message TS151001: If you have issues related to imports, you should consider setting `esModuleInterop` to `true` in your TypeScript configuration file (usually `tsconfig.json`). See https://blogs.msdn.microsoft.com/typescript/2018/01/31/announcing-typescript-2-7/#easier-ecmascript-module-interoperability for more information.
FAIL test/unit/app.spec.ts
● Test suite failed to run
Jest encountered an unexpected token
This usually means that you are trying to import a file which Jest cannot parse, e.g. it's not plain JavaScript.
By default, if Jest sees a Babel config, it will use that to transform your files, ignoring "node_modules".
Here's what you can do:
• To hav`enter code here`e some of your "node_modules" files transformed, you can specify a custom "transformIgnorePatterns" in your config.
• If you need a custom transformation specify a "transform" option in your config.
• If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the "moduleNameMapper" config option.
SyntaxError: Unexpected token :
at ScriptTransformer._transformAndBuildScript (node_modules/jest-runtime/build/script_transformer.js:403:17)
at Object.<anonymous> (src/home/app.ts:163:1)
纱线测试
#并且输出包含
纱线运行v1.12.3
$nps测试
nps正在执行'test':nps test.jest
nps正在执行“test.jest”:node node_modules/rimraf/bin.js test/coverage jest&&jest
ts jest[config](警告)类型脚本诊断(使用`[jest config].globals.ts jest.diagnostics`选项自定义):
消息TS151001:如果您有与导入有关的问题,则应考虑在“类型”配置文件(通常为“TSCONFIG.JSON”)中设置“EsMeuleEndoP”为“真”。看见https://blogs.msdn.microsoft.com/typescript/2018/01/31/announcing-typescript-2-7/#easier-ecmascript模块互操作性了解更多信息。
失败测试/装置/应用规范ts
● 测试套件无法运行
Jest遇到了意外的标记
这通常意味着您正试图导入Jest无法解析的文件,例如,它不是纯JavaScript。
默认情况下,如果Jest看到一个Babel配置,它将使用它来转换您的文件,忽略“node_modules”。
以下是您可以做的:
•要在此处输入代码以转换某些“节点模块”文件,您可以在配置中指定自定义“transformIgnorePatterns”。
•如果需要自定义转换,请在配置中指定“转换”选项。
•如果您只是想模拟您的非JS模块(例如二进制资产),您可以使用“moduleNameMapper”配置选项将其剔除。
SyntaxError:意外标记:
在ScriptTransformer.\u transformAndBuildScript(节点\u模块/jest运行时/build/script\u transformer.js:403:17)
反对。(src/home/app.ts:163:1)
我在app.ts中对import bootstrap.css行进行了注释,一切正常
我是否缺少一些jest配置,以允许我在.ts组件中使用css导入
下面是package.json中的jest部分
"jest": {
"verbose": true,
"roots": [
"<rootDir>/test"
],
"modulePaths": [
"<rootDir>/src",
"<rootDir>/node_modules"
],
"moduleFileExtensions": [
"js",
"json",
"ts"
],
"transform": {
"^.+\\.ts$": "ts-jest"
},
"testRegex": "\\.spec\\.(ts|js)$",
"testPathIgnorePatterns": [
"build",
"dist",
"sample"
],
"setupFiles": [
"<rootDir>/test/jest-pretest.ts"
],
"testEnvironment": "node",
"collectCoverage": true,
"collectCoverageFrom": [
"src/**/*.{js,ts}",
"!**/*.spec.{js,ts}",
"!**/node_modules/**",
"!**/test/**"
],
"coverageDirectory": "<rootDir>/test/coverage-jest",
"coverageReporters": [
"json",
"lcov",
"text",
"html",
"clover"
]
},
“开玩笑”:{
“详细”:正确,
“根”:[
“/测试”
],
“模块路径”:[
“/src”,
“/node\u模块”
],
“moduleFileExtensions”:[
“js”,
“json”,
“ts”
],
“转变”:{
“^.+\\.ts$”:“ts笑话”
},
“testRegex”:“\\.spec\\.(ts|js)$”,
“testPathIgnorePatterns”:[
“建造”,
“区”,
“样本”
],
“设置文件”:[
“/test/jest pretest.ts”
],
“测试环境”:“节点”,
“覆盖范围”:正确,
“CollectionCoverage from”:[
“src/***.{js,ts}”,
“!***/*.spec.{js,ts}”,
“!**/node_modules/**”,
“!**/test/**”
],
“coverage目录”:“/test/coverage jest”,
“搬运工”:[
“json”,
“lcov”,
“文本”,
“html”,
“三叶草”
]
},
我遇到了同样的错误。通过将tsconfig.json中的模块编译器选项从“esnext”更改为“commonjs”,我解决了这个问题 你在使用webpack吗?最近有一个关于jsdom jest和Aurelia的博客。也许它能帮助你解决你的问题?