【问题标题】:How to run an external script in mocha如何在 mocha 中运行外部脚本
【发布时间】:2016-06-07 07:42:02
【问题描述】:

这可能是一个愚蠢的问题,但无论如何我都得问问社区。​​p>

我正在使用 Zombie.js 和 Mocha 进行测试,并且我有一个名为:external.js 的外部脚本。

// external.js

module.exports = "console.log('hey');";

我想将此外部脚本加载到 mocha 测试中(不是 Zombie.js 打开的浏览器)并在运行测试之前运行它。

var myScript = require('../external.js');

describe('test script load', function() {
  browser.visit('www.example.com', done);

  // I want to load the external script here and run it before perfoming the test

  it('loads script', function (done) {
    browser.assert.success();
    done();
  });
});

我尝试了几种方法,例如创建脚本标签和插入我的外部脚本,但在 HTML 中似乎可以工作(因为它在 Zombie 的浏览器中运行良好)但我想要在运行测试之前脚本。

【问题讨论】:

    标签: javascript mocha.js zombie.js external-script


    【解决方案1】:

    您的意思是像将脚本注入到zombie.js 正在加载的页面中吗?请参阅:Injecting javascript into zombie.js

    如果不是这样,你可以试试这样的:

    external.js:

     function doSomething() {
        console.log('hi there!');
     } 
    
     module.exports = doSomething;
    

    mocha.js:

     var doSomething = require('./external.js');
    
     your test....
    
     doSomething();
    
     your test continued...
    

    应该可以的。

    【讨论】:

    • 不,不注入僵尸页面。在僵尸加载页面之前或之后注入 mocha,但绝对是在运行测试之前。
    • 好的,但是您想在测试中使用来自另一个脚本的函数。如果您将它放在一个函数中,然后导出该函数并将其分配给具有相同名称的导入,然后在您的测试脚本中调用它,它应该可以工作。
    • 我从您的方法中获得了一些见解。是的,做到了。
    • 但是您遇到的问题是它没有在您的测试之前运行?我找到了一个可以发布给您的异步解决方案,但是对于您需要的东西来说它可能有点过分了。还是行得通?
    • 谢谢,我去看看
    猜你喜欢
    • 2014-05-14
    • 1970-01-01
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多