首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行目录中的所有“test.html”文件-mocha-幻影in

运行目录中的所有“test.html”文件-mocha-幻影in
EN

Stack Overflow用户
提问于 2014-02-20 09:52:51
回答 2查看 1.5K关注 0票数 4

我有一个模块,我正在用摩卡-幻影测试这个模块。我创建了package.json文件

代码语言:javascript
复制
{
  "name"        : "demo-test",
  "scripts": {
    "test": "npm run test-debug",
    "test-debug": "mocha-phantomjs ./test/Test1.html"
  },
  "dependencies" : {
    "mocha"     : "1.13.x",
    "commander" : "1.2.x",
    "which"     : "~1.0.5",
    "mocha-phantomjs": "3.3.2"
  },
  "devDependencies" : {
    "chai"          : "1.8.x",
    "coffee-script" : "1.6.x",
    "requirejs"     : "2.1.x",
    "jquery"        : "2.1.0"
  }
}

然后运行npm install,然后运行npm test来运行测试。它运行良好,并运行test1.html的测试。现在我要所有的文件(test1,test2,.)在测试目录下,在运行npm test时执行。

我可以通过在package.json文件中单独调用来运行所有的html文件,但是如果有方法加载所有的Html文件的话。

EN

回答 2

Stack Overflow用户

发布于 2014-10-14 04:42:28

通常,您将向mocha-phantomjs运行程序传递一个Tests.html文件,该文件将加载要使用脚本标记运行的所有测试文件。

Tests.html将包含:

代码语言:javascript
复制
<script src="controller-tests/one-controller-test.js"></script>
<script src="controller-tests/another-controller-test.js"></script>
<script src="controller-tests/yet-another-controller-test.js"></script>
<script src="service-tests/one-service-test.js"></script>
<script src="service-tests/another-service-test.js"></script>
<script src="service-tests/yet-another-service-test.js"></script>

或者,如果您正在使用RequireJS或另一个AMD库,您可以单独或以嵌套方式在所有测试文件中加载一个测试--init.js文件,并在该文件中要求这样做:

Tests.html

代码语言:javascript
复制
<script src="test-init.js"></script>

test-init.js

代码语言:javascript
复制
require('controller-tests/init.js');
require('service-tests/init.js');

controller-tests/init.js

代码语言:javascript
复制
require('one-controller-test.js');
require('another-controller-test.js');
require('yet-another-controller-test.js');

service-tests/init.js

代码语言:javascript
复制
require('one-service-test.js');
require('another-service-test.js');
require('yet-another-service-test.js');
票数 1
EN

Stack Overflow用户

发布于 2016-11-17 22:28:46

我同意DanAri的观点。

我使用相同的引导加载程序和测试设置。

Mocha BDD

想必,默认情况下,在"BDD“模式下运行Mocha会在项目根目录中的"test”目录中查找html文件。它首先查找一个名为"test.html“的文件。"test/test.html“是Mocha用作夹具文件的默认路径目标。

关于RequireJS/AMD

关于客户端(AMD)风味RequireJS,我使用二进制分支模式。

代码语言:javascript
复制
-index.html
  |
  -/js/rjsMain.js
-test/test.html
  |
  -/js/rjsTest.js

我将我的RequireJS配置部分分隔成一个新文件(我称之为"rjsConfig.js")。此文件包含路径别名、依赖关系shims等。

那么,我的RequireJS "data-main“file /js/rjsMain.js看起来如下所示:

代码语言:javascript
复制
require(['rjsConfig'], function () {
    require(['app/main'], function () {});
});

然后,我复制了Require "main.js“文件,为我的Mocha夹具文件添加了一个备用入口点。

这样做的原因是为了不需要维护两个单独的配置文件。有一个共享文件是很好的。

PhantomJS

让PhantomJS实际加载并与异步加载的内容交互?那是另一回事了。这可能会很棘手。

幸运的是,我找到了一个有用的文件。

它没有一个很好的名字,但是--至少对我来说-- "load_ajax.js“是你需要让它发挥作用的秘诀。

https://gist.github.com/kalharbi/fc9d4f71b5e2a8f485cc

您需要自定义它来运行您的本地路由。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21904120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档