我正在使用testcafe进行测试自动化,并且已经将打字稿集成到项目中。我已经设置了非相对路径,请参见下文,该路径可用于IDE,但是在编译时,我确定它们不会还原为原始路径。
我试图将moduleResolution选项设置为tsconfig.json中的一个节点,尽管这不起作用。
有没有一种方法可以通过testcafe的配置来实现?
// tsconfig.json
{
"compilerOptions": {
"moduleResolution": "node",
"baseUrl": ".",
"paths": {
"@page-model/*": [
"page-model/*",
]
}
}
}
// test-file.ts
import { Home } from '@page-model/home'
运行testcafe chrome test-file.ts
时收到的错误是找不到我要引用的模块。显然是因为它没有被转换。
答案 0 :(得分:1)
TypeScript模块分辨率和NodeJS似乎有问题,而不是TestCafe。
我创建了一个示例,演示了没有TestCafe的问题。请查看以下代码:
index.ts
function log(t:any) {
console.log(t);
}
log(require('@page-model/model').HEADER);
tsconfig.json
{
"compilerOptions": {
"baseUrl": "models",
"paths": {
"@page-model/*": [ "main/*" ]
},
"noImplicitAny": true
}
}
我使用index.ts
实用程序编译了tsc
文件,并获得了以下js代码:
index.js
function log(t) {
console.log(t);
}
log(require('@page-model/model').HEADER);
TS编译器未解析路径。我在StackOverflow上搜索了可能的解决方案,他们建议尝试使用https://www.npmjs.com/package/tsconfig-paths模块。