小编Dav*_*era的帖子

如何从node.js中的一个"npm test"命令运行mocha和mocha-phantomjs测试?

我有几个节点包可以在node.js环境中运行,也可以在浏览器中运行.现在我有两个单独的测试(针对每个环境).使用npm test命令运行这些测试的最佳方法是什么?另外我想将这些包添加到travis.

我正在使用mochamocha-phantomjs.

节点测试命令

node ./node_modules/mocha/bin/mocha ./test/node/index.js --reporter spec
Run Code Online (Sandbox Code Playgroud)

浏览器测试命令

node ./node_modules/mocha-phantomjs/bin/mocha-phantomjs ./test/browser/index.html
Run Code Online (Sandbox Code Playgroud)

我尝试了什么:

  1. 将这些命令添加到npm test以分号分隔的脚本中
    • 问题:当第一个脚本中出现错误但第二个脚本中没有错误时,命令退出0并传递travis构建.
  2. 让node命令在npm test脚本中测试并为浏览器测试创建自定义脚本.然后将这两个命令(npm testnpm run-script test-browser)添加到travis.yml作为数组.
    • 问题:用户必须手动运行两个独立的测试脚本.
  3. 让node命令在npm test脚本中测试并将浏览器测试添加到npm posttest命令.Travis.yml将只有一个脚本,用户也必须运行一个脚本(每个人都很高兴).
    • 问题:感觉不对,所以我想知道是否有更好的方法.

browser testing mocha.js node.js phantomjs

57
推荐指数
1
解决办法
3万
查看次数

Nginx具有不同根的多个位置

我的nginx配置非常简单,内部有3个位置。他们每个人都有自己的根目录+我将来应该可以轻松添加另一个目录。

我想要的是:

请求/admin=>位置^/admin(/|$)

请求/admin/=>位置^/admin(/|$)

请求/admin/blabla=>位置^/admin(/|$)

请求/client=>位置^/client(/|$)

请求/client/=>位置^/client(/|$)

请求/client/blabla=>位置^/client(/|$)

请求/blabla=>位置/

请求/admin-blabla=>位置/

请求/client-blabla=>位置/

实际结果:

所有请求都转到了位置/

我使用别名,try_files,根目录和正则表达式的不同组合尝试了来自文档,stackoverflow和其他来源的许多不同建议,但对我没有任何帮助。

仅当我尝试使用just return 200 'admin';并且return 200 'front'它按预期工作时。

最低配置:

server {
    listen 80;
    index index.html;

    location / {
        root /var/www/html/www_new/front;
        try_files $uri $uri/ /index.html;
    }

    location ~ ^/admin(/|$) {
        root /var/www/html/www_new/admin;
        try_files $uri $uri/ /index.html;
    } …
Run Code Online (Sandbox Code Playgroud)

nginx nginx-location

3
推荐指数
1
解决办法
7020
查看次数

标签 统计

browser ×1

mocha.js ×1

nginx ×1

nginx-location ×1

node.js ×1

phantomjs ×1

testing ×1