【问题标题】:Intern creates one BrowserStack session for all tests实习生为所有测试创建一个 BrowserStack 会话
【发布时间】:2015-11-15 19:17:19
【问题描述】:

在 Intern 框架中,当我使用 functionalSuites 配置字段指定多个测试并使用 BrowserStack 隧道运行测试时,仅在 BrowserStack 中创建一个会话(所有内容都被视为单个测试)。因此,我们遇到了一些问题:

  • 实际上不可能使用 BrowserStack 进行大量测试的调试。没有导航,您必须滚动浏览一个巨大的日志。
  • 测试未完全隔离。例如,localStorage 在所有测试之间共享。

问题:如何强制 Intern 框架为每个测试创建一个新会话?看了代码库,现在好像是不可能的。

PS:我认为这种行为也适用于其他隧道。

【问题讨论】:

    标签: testing intern browserstack


    【解决方案1】:

    使用以下要点

    intern-parallel.js

    只需将此文件放在 intern.js 旁边,然后将功能测试文件中的“intern!object”替换为“tests/intern-parallel”

    功能测试示例

    define([
      //'intern!object',
      'tests/intern-parallel',
      'intern/chai!assert',
      'require'
    ], function (registerSuite, assert, require, registry) {
      registerSuite({
        name: 'automate first test',
    
        'google search': function () {
          return this.remote
            .get(require.toUrl('https://www.google.com'))
            .findByName("q")
              .type("Browserstack\n")
              .end()
            .sleep(5000)
            .takeScreenshot();
        }
      });
    });
    

    【讨论】:

    • 不幸的是它没有帮助。仍然只创建一个会话
    • 请检查说明是否正确执行。在您的所有功能套件中将 'intern!object' 替换为 'tests/intern-parallel'。
    • 您的解决方案不适用于我们的代码结构。我们有一个包含“afterEach”、“beforeEach”以及测试方法本身的对象,而不是“google search”函数。示例:gist.github.com/sap1ens/1a2baaa7445c3a2a6347
    • 另外,您似乎在 Browserstack 中看不到真正的测试名称。您可以覆盖“功能”配置中所有测试的名称,也可以回退到会话 ID 作为名称。
    • 更新了要点以支持您的代码结构。请立即尝试。还尝试从您的测试套件中计算出会话名称,除了第一个测试从功能配置中获取名称。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-30
    • 1970-01-01
    • 1970-01-01
    • 2018-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多