当前位置: 首页 > 知识库问答 >
问题:

在VSCode中调试量角器测试

茅涵映
2023-03-14

我正在使用Angular 9、Node v14和e2e测试,使用Cucumber、量角器和量角器Cucumber框架。

量角器。conf.js


exports.config = {
    // For configuring timeouts see https://www.protractortest.org/#/timeouts
    allScriptsTimeout: 31000,
    getPageTimeout: 30000,
    capabilities: {
        'browserName': 'chrome',
        'loggingPrefs': {
            // 'driver': 'ALL',
            // 'server': 'ALL',
            'browser': 'ALL'
        },
    },
    directConnect: true,
    baseUrl: 'http://localhost:7774/',

    framework: 'custom',

    // register Cucumber framework so that we can compile .feature files
    frameworkPath: require.resolve('protractor-cucumber-framework'),

    async onPrepare() {
        console.log("Register TypeScript compiler for tests");
        require('ts-node').register({
            project: require('path').join(__dirname, './tsconfig.e2e.json')
        });

        console.log("Setting waitForAngularEnabled to false");
        browser.waitForAngularEnabled(false);
    },

    // require feature files
    specs: [
        './features/**/*.feature'
    ],

    cucumberOpts: {
        // For configuration see https://github.com/cucumber/cucumber-js/blob/master/docs/cli.md
        require: [
            './pages/**/*.page.ts',
            './steps/**/*.step.ts',
            './support/**/*.ts'
        ],
        tags: "@SystemTest"
    }
};

tsconfig。e2e。json

...
    "compilerOptions": {
        "outDir": "../dist/out-tsc/e2e",
        "module": "commonjs",
        "sourceMaps": true,
        "target": "es6",
        "types": [
            "chai",
            "chai-as-promise",
            "node"
        ]
    }
...

发射json

        {
            "name": "npm run e2e",
            "type": "pwa-node",
            "request": "launch",
            "cwd": "${workspaceFolder}",
            "runtimeExecutable": "npm",
            "runtimeArgs": ["run-script", "e2e"],
            "protocol": "inspector",
            "sourceMaps": true
        },

package.json

        "e2e": "protractor e2e/protractor.conf.js",

我可以在VSCode中启动调试器,但问题是每个断点都是未绑定的断点。

我还尝试在tsconfig中添加“inlineSourceMap”:true。e2e。json和我也尝试加入launch。json

            "resolveSourceMapLocations": [
                "${workspaceFolder}/e2e/**",
                "!**/node_modules/**"
            ]

问题似乎是ts节点在内存中生成源映射(这就是为什么我尝试inlineSourceMap)。有没有办法不使用tsc先编译。ts文件和源映射,然后使用。js文件,但仍然使用ts节点。

共有1个答案

韦原
2023-03-14

我终于成功了。问题是ts节点编译到内存中,而VSCode对源映射一无所知。因此,我首先使用sourcemaps(在一个午餐前任务中)编译了所有内容,然后在调试模式下启动了该过程。而且type:pwa节点似乎不起作用,您应该使用type:node

 类似资料:
  • 问题内容: WebStorm中提供了一种运行和调试量角器Web测试的方法。我只想在这里分享这个答案 问题答案: 获取节点路径(在终端中输入) 在WebStorm中:单击“ 编辑配置 ”-“ 运行 ”按钮左侧的下拉菜单(绿色箭头,类似于“播放”按钮) 单击“添加按钮”(绿色 + )以添加新的Node配置。选择“ Node.js ” 填写参数: 节点解释器 :Node.js的完整路径(从步骤1开始)

  • 问题内容: 是否可以像在单元测试中一样在量角器测试中访问angular? 用例是我有一个可以转换文本的服务,并且我想访问该服务以转换实际测试脚本中的某些数据。我知道量角器中有这种方法,但是我不知道如何为此目的使用它。 将不胜感激! 问题答案: 有一个函数称为validate()。在dom中找到一个元素,然后运行表达式。 例如。如果要计算http://angularjs.org/网站(在“添加某些控

  • 我正在使用以下版本的VSCode: 使用Python扩展version。唯一安装的PIP是: 我试图在vscode中调试python测试,在调试控制台中出现以下错误: 测试本身在终端上运行良好。换句话说,找不到“缺失”模块没有问题。例子: 我启动调试器的方式是单击给定测试的链接。例子: 下面是配置: 有人知道我在配置方面缺少什么吗?

  • 问题内容: 我试图只是运行包含在Internet Explorer 上的量角器中的示例测试,并且不会太远:( 我尝试过将浏览器名称更改为“ internet Explorer”和 “ version”:11,并且我已注释掉directConnect(因为它对此有所抱怨 ) 我得到的错误是… WebDriverError:必须通过 webdriver.ie.driver系统属性设置驱动程序可执行文件

  • 问题内容: 今天,我一直在努力处理以下这些量角器代码行: 放在语句后似乎总是失败。 错误输出太模糊: UnknownError:JavaScript错误:等待结果时卸载文档 那么,单击超链接并检查新URL的正确方法是什么? 这是我的测试: 如果我在点击链接之前, 测试将通过。 如果我点击链接后, 上面的输出在Protractor中引发错误。什么地方出了错? 问题答案: 不用调用,而是 等待URL更

  • 问题内容: 我似乎无法通过测试成功获得PhantomJS。我试图将其集成到我的项目中,但是在此之后失败了,我尝试仅运行基本的Angular Docs示例,但遇到了同样的问题。到目前为止,我的步骤: // … GhostDriver-Main-在端口9515上运行 这是与示例中相同的文件,仅具有browserName,并且seleniumAddress端口已更改: 我收到以下错误消息: 我在gith