使用打字稿时如何使用testcafe解决非相对路径

时间:2019-07-12 22:03:27

标签: typescript automated-tests e2e-testing testcafe tsconfig

我正在使用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时收到的错误是找不到我要引用的模块。显然是因为它没有被转换。

1 个答案:

答案 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模块。