- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用一个简单的 webdrioverio e2e 测试来设置一个示例 angular 项目,但是在我的 e2e 测试中遇到了一些编译错误。
tsconfig 设置
该项目主要使用以下文件进行设置:
e2e / test / [e2e test code]
e2e / tsconfig.e2e.json
e2e / wdio.conf.js
package.json
tsconfig.json
我的基地
tsconfig.json
好像:
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"downlevelIteration": true,
"experimentalDecorators": true,
"module": "esnext",
"moduleResolution": "node",
"importHelpers": true,
"target": "es2018",
"lib": [
"es2018",
"dom"
]
},
"angularCompilerOptions": {
"fullTemplateTypeCheck": true,
"strictInjectionParameters": true
}
}
tsconfig.e2e.json
好像:
{
"extends": "../tsconfig.json",
"compilerOptions": {
"module": "CommonJS",
"outDir": "../dist/out-tsc/e2e",
"baseUrl": "./",
"target": "es2018",
"types": [
"node",
"@wdio/sync",
"@wdio/jasmine-framework",
"jasminewd2"
]
}
}
输出
tsc
从我的 IDE 终端或尝试执行
e2e
脚本来自
package.json
导致以下错误:
[0-0] 2021-02-09T15:47:53.019Z WARN @wdio/jasmine-framework: Unable to load spec files quite likely because they rely on `browser` object that is not fu
lly initialised.
`browser` object has only `capabilities` and some flags like `isMobile`.
Helper files that use other `browser` commands have to be moved to `before` hook.
Spec file(s): C:\dev\source\rme\angular-wdio6-builder-demo\e2e\test\specs\basic.spec.ts
Error: TSError: ⨯ Unable to compile TypeScript:
e2e/test/specs/basic.spec.ts(7,5): error TS2304: Cannot find name 'browser'.
e2e/test/specs/basic.spec.ts(8,19): error TS2304: Cannot find name 'browser'.
e2e/test/specs/basic.spec.ts(13,5): error TS2304: Cannot find name 'browser'.
e2e/test/specs/basic.spec.ts(14,21): error TS2581: Cannot find name '$'. Do you need to install type definitions for jQuery? Try `npm i @types/jquery`.
我的预感和 MRE
browser
-object 很好,按住 ctrl 单击它会显示浏览器变量位于
node_modules\@wdio\sync\webdriverio.d.ts
文件。
package.json
有一个
pree2e
在
e2e
之前执行的脚本,它调用
e2e/e2e.cmd
:
set TS_NODE_PROJECT=e2e/tsconfig.e2e.json
编辑2:wdio.conf.js
-配置文件:
exports.config = {
runner: 'local',
path: '/',
specs: [
`${__dirname}/test/specs/**/*.ts`
],
exclude: [
],
maxInstances: 10,
capabilities: [{
maxInstances: 5,
browserName: 'chrome',
}],
logLevel: 'warn',
bail: 0,
baseUrl: `http://localhost:${process.env.PORT || 4200}`,
waitforTimeout: 10000,
connectionRetryTimeout: 90000,
connectionRetryCount: 3,
services: ['chromedriver'],
framework: 'jasmine',
jasmineNodeOpts: {
requires: ['ts-node/register'],
defaultTimeoutInterval: 60000,
expectationResultHandler: function(passed, assertion) {
// do something
}
},
}
最佳答案
您可以在 wdio.conf 文件中运行 tsnode。
同样在您的 jasmine 选项中,您应该需要 tsconfig-paths 代替:
const tsNode = require('ts-node');
tsNode.register({
files: true,
project: './e2e/tsconfig.e2e.json'
});
exports.config = {
....
jasmineNodeOpts: {
// Required for Typescript
requires: ['tsconfig-paths/register'],
...
};
关于angular - 找不到 e2e tsconfig 类型 : error TS2304: Cannot find name 'browser' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66123126/
我正在尝试在 Windows 上运行的小于 1GB 的 VM 上设置 YouTrack 和 TeamCity。使用率将非常低(用户和请求)。这是一个 POC 环境,如果它有效,我可能会将它推送到一个超
所以我在尝试使用 FORFILES 解决这个问题时遇到了麻烦。我正在尝试获取不超过 4 天的文件。所以基本上少于 4 天。然而,这似乎不太可能,因为/d -4 获取所有 4 天或更早的项目。 以下是我
如何从下面的 events 表中选择小于 15 分钟前创建的 events? CREATE TABLE events ( created_at timestamp NOT NULL DEFAU
Google Analytics Realtime提供 rt:minutesAgo ,可以过滤查询。 然而,它是一个维度而不是一个度量标准,<=不能在过滤器中使用。 假设我想在最后 n 分钟内获得一些
iOS 核心数据 - 严重的应用程序错误 - 尝试插入 nil 你好, 我的应用程序实际上运行稳定,但在极少数情况下它会崩溃并显示此错误消息... 2019-04-02 20:48:52.437172
我想制作一个 html div 以快速向右移动(例如不到 1 秒)并消失。然后1秒后再次直接出现在这个过程最开始div的位置。此过程将由单击按钮并重复 10 次触发。 我试图在 CSS 中使用过渡属性
我发现使用 TimeTrigger 是 Windows 10 (UWP) 上计划后台任务的方式。但是看起来我们需要给出的最小数字是 15 分钟。只是想知道,即使我们安排它在接下来的 1 分钟内运行,警
我必须在 1 秒内在屏幕上打印 2^20 行整数 printf 不够快,还有其他易于使用的快速输出替代方法吗? 每一行只包含 1 个整数。 我要求它用于竞争性编程问题,我必须将其源代码提交给法官。 最
我是一名优秀的程序员,十分优秀!