javascript – 多功能和茉莉花聚焦测试

前端之家收集整理的这篇文章主要介绍了javascript – 多功能和茉莉花聚焦测试前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
故事:

我们有一个相当巨大的端到端量角器测试代码库.我们有两个配置 – 一个是“本地” – 使用directConnect在Chrome和Firefox中运行测试,另一个是“远程” – 在远程硒服务器上运行测试 – BrowserStack.

我们的“本地”配置被配置为在Chrome和一些在Firefox中运行一些测试 – 因为我们真的不能在Chrome中运行一些测试 – 例如keyboard shortcuts don’t work in Chrome+Mac.运行需要在Firefox中使用键盘快捷键的测试是一种解决方法,直到链接的chromedriver问题解决了.

以下是配置的相关部分:

  1. var firefox_only_specs = [
  2. "../specs/some_spec1.js","../specs/some_spec2.js","../specs/some_spec3.js"
  3. ];
  4.  
  5. exports.config = {
  6. directConnect: true,multiCapabilities: [
  7. {
  8. browserName: "chrome",chromeOptions: {
  9. args: ["incognito","disable-extensions","start-maximized"]
  10. },specs: [
  11. "../specs/**/*.spec.js","../specs/**/**/*.spec.js","../specs/**/**/**/*.spec.js"
  12. ],exclude: firefox_only_specs
  13. },{
  14. browserName: "firefox",specs: firefox_only_specs
  15. }
  16. ],// ...
  17. };

问题:

现在,问题是,如果我正在调试一个单独的测试,或者想要运行一个单独的测试 – 我标记为焦点(通过fdescribe / fit) – 但量角器启动两个驱动程序会话 – 一个用于Chrome和另一个用于Firefox,使用两种配置的功能

  1. Running "protractor:local" (protractor) task
  2. [launcher] Running 2 instances of WebDriver
  3.  
  4. ...
  5. ------------------------------------
  6. [chrome #1] PID: 2329
  7. [chrome #1] Using ChromeDriver directly...
  8. [chrome #1] Spec started
  9.  
  10. ...
  11.  
  12. ------------------------------------
  13. [firefox #2] PID: 2330
  14. [firefox #2] Using FirefoxDriver directly...
  15. [firefox #2] Spec started
  16.  
  17. ...

问题:

有没有办法告诉量角器使用唯一一个配置了重点规格的功能

使用当前最新的量角器3.0.0.

希望问题很清楚.如果您需要任何其他信息,请告诉我们.

解决方法

我想知道你可以做些什么来包装它的语句,如:
  1. onPrepare: function() {
  2. browser.getCapabilities().then(function(caps) {
  3. global.browserName = caps.caps_.browserName;
  4. });
  5.  
  6. global.firefoxOnly = function(name,testFunction) {
  7. if (browserName === 'firefox') {
  8. return it(name,testFunction);
  9. } else {
  10. return xit(name,testFunction).pend('firefox only');
  11. }
  12. };
  13. }

那么当你写一个测试,而不是使用像:

  1. describe('when I do something',function() {
  2. firefoxOnly('it should do the right thing',function() {
  3. doSomething();
  4. expect(thing).toBe(right);
  5. )};
  6. });

我不知道这是否真的有效,只是把它扔在那里.事实上,当我回到我的测试计算机并尝试出来,我将有兴趣添加一个像wip这样的功能,而不是使用xit来自动挂起我的ATDD测试!

猜你在找的JavaScript相关文章