代码之家  ›  专栏  ›  技术社区  ›  theJuls

如何适当地重用mocha测试的描述块?

  •  5
  • theJuls  · 技术社区  · 7 年前

    我有一个应用程序可以在不同的模式下运行(可以将其视为在不同的平台上运行以及使用不同的协议),其中一个应用程序在每次打开页面时都有很长的加载周期。还有一些其他的小改动,但所有这些都可以使用wdio的设置变量来处理。

    目前,我有一个测试文件(与描述)为每个部分的应用程序。如果正在测试的配置之一没有这么长的等待时间,这将很好。无论如何,我决定处理这个测试用例,在一个文件中处理它,所有文件都在同一页上。

    // test1.js
    module.exports = function test1 () {
      describe('Test1', function () {
        var settings = {}
    
        before(function () {
         // do something
        })
    
        it('do something', function () {
          assert.ok(true)
        })
        it('do something else', function () {
              assert.ok(true)
        })
      })
    }
    

    在另一个文件中,我们运行我们创建的每个函数:

    test1 = require('./test1')
    test2 = require('./test2')
    ...
    test10 = require('./test10')
    describe('Main Test', function () {
      test1()
      test2()
      ...
      test10()
    }
    

    如果我可以使用某种方式选择在命令上运行哪些测试函数,那么这就解决了我的枯燥问题

    wdio/test/spects/browser/test1.js

    这显然行不通。

    2 回复  |  直到 7 年前
        1
  •  9
  •   theJuls    7 年前

    here .

    我将按照前面描述的那样做,但是,我不会将所有这些函数放在同一个文件中,而是将它们保存在它们自己的文件中。也许还有更好的解决方案,但对于运行我的应用程序的不同模式,复制和粘贴所有测试用例仍然是一种改进。

        2
  •  1
  •   oligofren    4 年前

    只需通过编程创建不同的描述块。使用所有更改的参数(包括块的名称)将descripe块包装在一个函数中,然后简单地调用该函数来创建变体。

    https://github.com/fatso83/forum-support-code/commit/cb2bc10b1d8bdae31e8f0a8c4e724c70583a5e11