3

根据Angular的文档

在端到端测试中添加 pause() 语句并重新运行它。你会看到跑步者停顿;这使您有机会在应用程序显示在浏览器中时探索它的状态。该应用程序已上线!您可以更改搜索查询来证明这一点。请注意,这对于解决端到端测试问题是多么有用。

我在端到端测试中使用了很多,但我遇到了一些障碍。我用 grunt 设置了我的开发环境,其行为如下:

grunt.registerTask('test:watch', [
    'clean:server',
    'concurrent:server',
    'autoprefixer',
    'connect:livereload',
    'karma:unit',
    'open',
    'karma:e2e',
    'watch'
  ]);

这里有趣的是如何设置 karma 以及如何使用 karma 设置手表,因此请查看以下内容:

karma: {
  options: {
    configFile: 'karma.conf.js',
  },
  e2e: {        
    singleRun: false,
    background: true,
    configFile: 'karma-e2e.conf.js',
  },
  unit: {
    singleRun: false,
    background: true        
  }
}

手表看起来像这样

watch: {
  karma: {
    files: ['test/**/*.js'],
    tasks: ['karma:unit:run', 'karma:e2e:run']
  }
}

所以,当我跑步时

咕噜测试:观看

我启动了我的服务器,这样我就可以使用它了,每次我更改一个文件时,我的单元测试都会运行,然后是我的端到端测试。它工作得很好。问题是,当我在端到端测试中使用暂停时,控制台会在暂停处停止,我不知道如何告诉它恢复而不必终止命令并重新开始。

如果您想知道,我让 Scenario Runner 在单独的浏览器上运行,这是 pause() 派上用场的地方。在那方面,一切正常,我可以在浏览器上恢复它,一切都很好。

但问题仍然存在,如何让手表在遇到 pause() 后继续通过 bash 控制台“评估”端到端测试?

4

1 回答 1

1

这不会是一个流行的答案,但此时你正在刮牦牛

为了有意识或无意识地拖延一项更大但更有用的任务而进行的不太有用的活动。

您的目标是在浏览器中测试站点的行为针对测试测试代码的行为。没有必要同时做这两件事。

如果您真的担心意外提交未通过单元测试或 e2e 测试的内容,您可以随时向 git 或您使用的任何版本控制系统添加预提交挂钩,以确保所有测试都通过。

在这一点上,我很惊讶您还没有完成提交代码、标记代码并将其推送到生产环境的繁重任务!;)

于 2014-07-31T02:43:36.347 回答