Javascript 如何在mocha中运行外部脚本

Javascript 如何在mocha中运行外部脚本,javascript,mocha.js,zombie.js,external-script,Javascript,Mocha.js,Zombie.js,External Script,这可能是一个愚蠢的问题,但无论如何,我必须问问社区 我使用Zombie.js和Mocha进行测试,我有一个名为external.js的外部脚本 // external.js module.exports = "console.log('hey');"; 我想将这个外部脚本加载到mocha测试中(不是Zombie.js打开的浏览器),并在运行测试之前运行它 var myScript = require('../external.js'); describe('test script load

这可能是一个愚蠢的问题,但无论如何,我必须问问社区

我使用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的浏览器中工作得很好),但在运行测试之前我需要脚本。

你的意思是像将脚本注入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();
  });
});
如果不是这样,您可以尝试以下方法:

external.js:

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

 module.exports = doSomething;
mocha.js:

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

 your test....

 doSomething();

 your test continued...

那应该行。

你的意思是像在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...

这应该行得通。

不,不要注射到僵尸页面。在zombie加载页面之前或之后注入mocha,但一定要在运行测试之前。好的,但您希望在测试中使用另一个脚本中的函数。如果您将它放在一个函数中,然后导出该函数,并将其分配给具有相同名称的导入,然后在测试脚本中调用它,它应该可以工作。是的,这样做了。但是你遇到的问题是它没有在测试前运行?我找到了一个异步解决方案,我可以发布给您,但对于您所需要的东西来说,这可能有些过头了。或者它可以用吗?谢谢,我会查出来的不,不是注射到僵尸的页面。在zombie加载页面之前或之后注入mocha,但一定要在运行测试之前。好的,但您希望在测试中使用另一个脚本中的函数。如果您将它放在一个函数中,然后导出该函数,并将其分配给具有相同名称的导入,然后在测试脚本中调用它,它应该可以工作。是的,这样做了。但是你遇到的问题是它没有在测试前运行?我找到了一个异步解决方案,我可以发布给您,但对于您所需要的东西来说,这可能有些过头了。还是行得通?谢谢,我来看看