【发布时间】:2015-08-12 14:48:42
【问题描述】:
我在 Idea 中编写和运行我的测试。但这不是很舒服,因为当我更改配置文件时,我总是应该在配置文件中更改规范名称并在 Idea 中编辑配置。 我真的很想找到一种方法来运行我的测试而不更改配置。也许通过双击(这是一个梦想!)或通过更改配置中的某些内容。 有人知道我该怎么做吗?还是不可能?
【问题讨论】:
标签: angularjs protractor angularjs-e2e e2e-testing
我在 Idea 中编写和运行我的测试。但这不是很舒服,因为当我更改配置文件时,我总是应该在配置文件中更改规范名称并在 Idea 中编辑配置。 我真的很想找到一种方法来运行我的测试而不更改配置。也许通过双击(这是一个梦想!)或通过更改配置中的某些内容。 有人知道我该怎么做吗?还是不可能?
【问题讨论】:
标签: angularjs protractor angularjs-e2e e2e-testing
您需要的是"Focused Specs" Jasmine 功能。
无需更改配置,只需使用fdescribe/fit 标记您要运行的测试即可。
还有像 xdescribe/xit 和 pending 这样的东西可能对您有用。
另外,为了避免意外地将fdescribes 或fits 提交到代码库,我们使用eslint 和eslint-plugin-jasmine 插件在静态代码分析步骤中捕获这些问题。示例输出:
test/e2e/specs/test.spec.js
5:0 error Unexpected fdescribe jasmine/no-focused-tests
【讨论】:
fdescribe/fit,而是ddescribe/iit。
在this 主题中,他们讨论了这个问题,这似乎不是一件容易的事,但你可以挖掘更多。
您可以做的是在运行配置中添加 --suite 选项(在 Idea 中,如果您使用节点运行 e2e,它在运行/调试配置下称为“应用程序参数”),例如
--suite=views
您甚至可以制作单独的运行配置以仅运行特定套件,并使特定套件仅保存单个文件,这将有效地按照您的意愿工作。
据我所知,您不能以这种方式运行单个测试,您需要更改套件配置中的测试文件。您应该能够毫无问题地评论和取消评论文件,所以它不应该有那么大的麻烦,但您也可以尝试编写外部脚本或工具来为您自动化它。
编辑:如果您使用的是 expect/it 等,您也可以尝试 this solution。
【讨论】:
如果我理解您的问题,我相信grunt-protractor-runner grunt 插件可以让您通过命令行运行不同的测试和不同的选项。
这是一个如何从命令行运行测试的示例:
grunt protractor --specs=specs/some-test.js
有很多关于使用量角器设置 grunt 的教程。
您也不必只做一次测试。你可以像下面这样指定
多个个人规格:
grunt protractor -specs=tests/barret/Smoke_Create_Course_2Plus_TxtBook_spec.js,tests/barret/Smoke_Create_Course_eBook_TxtBook_spec.js,tests/barret/Smoke_Create_Course_Meet_Days_spec.js
包含规范的多个文件夹:
grunt protractor -specs=tests/barret/*.js,tests/barret/with_textbook/*.js,tests/barret/no_textbook/*.js
此外,您还可以使用套件。
【讨论】: