小编Lou*_*uis的帖子

如何为node.js应用程序运行mocha测试的make命令

我创建了一个文件夹:MyFirstNodeAppl,在其中,我创建了一个测试文件夹,其中包含需要使用mocha框架运行的所有测试.

我还创建了一个名为MakeFile的make文件和内容详细信息,如下所述:

test:
      @./node_modules/.bin/mocha -u tdd

.PHONY: test
Run Code Online (Sandbox Code Playgroud)

package.json与test和MakeFile处于同一级别,其内容如下所述:

{
    "name": "nockmarket", 
    "version": "0.0.1",
    "private": true,
    "dependencies": {
        "jquery" : "1.7.3",
        "mocha": "1.3.0",
        "should": "1.0.0"     
    }
}
Run Code Online (Sandbox Code Playgroud)

设置完上述内容后,我使用node命令提示符窗口运行了npm install命令.现在我知道Mocha使用make来运行测试工具,而对于Windows用户,我们需要Cygwin,所以我将它安装在我的系统中.但我无法运行make命令来测试单元测试用例.

任何人都可以通过在上面提供指导来帮助我解决这个问题.

文件夹结构细节: 在此输入图像描述

mocha.js node.js

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

json启动条件与json格式

尽管在文档和论坛中进行了长时间的搜索,但仍然无法在node.js中使用JSON格式获得正确的Jison 启动条件语法

> ** Documentation at http://zaach.github.io/jison/docs/ says:
> // Using the JSON format, start conditions are defined with an array
> // before the rule’s 
> matcher {rules:[
>     [['expect'], '[0-9]+"."[0-9]+', 'console.log( "found a float, = " + yytext );'
>     ]]}
Run Code Online (Sandbox Code Playgroud)

但遗憾的是,没有人不提供完整的工作样本.

我试图排除两个标签之间的任何文本.在lex中会使用开始条件.Jison文档说它应该有效.然而,由于Jison错误消息不是非常直观,我很乐意找到一个可行的样本来继续前进.

有人会有解决方案吗?

var jison    = require("jison").Parser;

grammar = {  
    "lex": {
        "rules" : [ [" +" , "/* skip whitespace */"]
            ,[['mode1'], '[0-z]+\\b'        , "return 'INFO';"]
            ,[['mode1'], '<\\/extensions>'  , "this.popState(); return 'EXTEND';"]
            ,['<extensions>'                , "this.begin('mode1'); …
Run Code Online (Sandbox Code Playgroud)

javascript node.js jison

6
推荐指数
1
解决办法
778
查看次数

在场景大纲之前运行一次特定步骤 - Python Behave

正如标题所示,我希望在场景大纲之前运行某些配置/环境设置步骤.我知道有Background这样做的场景,但Behave将场景大纲分成多个场景,从而为场景大纲中的每个输入运行背景.

这不是我想要的.由于某些原因,我无法提供我正在使用的代码,但是我将编写一个示例功能文件.

Background: Power up module and connect
Given the module is powered up
And I have a valid USB connection

Scenario Outline: Example
    When I read the arduino
    Then I get some <'output'>

Example: Outputs
| 'output' |
| Hi       |
| No       |
| Yes      |
Run Code Online (Sandbox Code Playgroud)

什么会发生在这种情况下是会舞动动力循环和检查每个输出USB接口Hi,No,Yes导致三个电源周期和三个连接检查

我想要的是使用一次电源循环并检查连接一次,然后运行所有三个测试.

我该怎么做呢?

python bdd scenarios python-behave

6
推荐指数
2
解决办法
5497
查看次数

Plone5 Mockup Widgets就像pat-pickadate不适用于动态生成的内容

在plone 5页面模板中假设以下愚蠢的代码片段:

<input id="foo" class="pat-pickadate" />

<input id="bar" />

<script type="text/javascript" >
       $('#bar').click( function () {
            $('#bar').addClass("pat-pickadate");
       });
</script>
Run Code Online (Sandbox Code Playgroud)

你会得到两个输入.第一个是很好的日历输入,第二个是开始时为空.单击第二个输入后,其类将设置为"pat-pickadate" - 与第一个类似 - 但不会呈现日历.

我试图找到原因时遇到了这个问题,为什么我的jquery-UI叠加显示plone添加,编辑视图不再(Plone5)显示日历小部件.

这种行为是有意的吗?如果是这样,在Plone 5中通过AJAX调用动态获取的表单中使用模型小部件的正确方法是什么?是否有一些神奇的召唤通知Mockup机制DOM的变化?

我读到Mockup有自己的叠加技术,但很难重写大约600行复杂的JS代码,只是为了得到一个简单的小部件.

我无法找到关于此主题的任何文档或示例.有人能把我放在正确的方向吗?

javascript ajax plone requirejs plone-5.x

6
推荐指数
1
解决办法
169
查看次数

如何在Chrome中启动测试,控制台停靠在底部,而不是右边?

每当我在Chrome上启动Karma时,都会弹出一个新的Chrome窗口.当我在这个Chrome窗口上调出控制台时,控制台会出现在右侧.我更喜欢连接到底部的控制台,所以我总是把它搞定 - 这有点烦人.

如何让Karma启动Chrome,控制台停靠在底部?

javascript google-chrome google-chrome-devtools karma-runner karma-jasmine

6
推荐指数
1
解决办法
379
查看次数

为什么RequireJS不会多次加载我需要多次的模块?

当有两个文件导入相同的模块时,它似乎共享相同的资源,如下所示:

main.js:

require(['cmdA', 'cmdB'], function(cmdA, cmdB){

})
Run Code Online (Sandbox Code Playgroud)

cmdA.js:

define(function(require, exports){
    console.log('require: cmdA');
    var body = require('body');
});
Run Code Online (Sandbox Code Playgroud)

cmdB.js:

define(function(require, exports){
    console.log('require: cmdB');
    var body = require('body');
});
Run Code Online (Sandbox Code Playgroud)

结果:

require body 
require: cmdA 
require: cmdB 
Run Code Online (Sandbox Code Playgroud)

那么为什么不呢:

require body
require: cmdA
require body
require: cmdB
Run Code Online (Sandbox Code Playgroud)

我认为body.js需要两次,所以控制台输出两次.为什么?

javascript require requirejs

5
推荐指数
1
解决办法
2975
查看次数

gulp.js + browserify:动态生成特定于开发的文件

我有一个应用程序,其中包含一些特定于开发的调试代码.目前,所有开发代码都由dev在文件顶部调用的变量保护.这是我的应用程序的一个示例:

var dev = true;

if (dev) {
  console.log("Hello developer");
} else {
  console.log("Hello production");
}
Run Code Online (Sandbox Code Playgroud)

当我去部署我的应用程序时,我必须手动将dev变量形式从true更改为false.这很糟糕.

我正在从手工构建的迁移到gulp.js,我希望干净地解决这个开发与生产构建问题.我正在考虑以下事项:

// Inside main.js
var dev = require('./isdev');
if (dev) //...

// Inside isdev.js:
module.exports = true;
Run Code Online (Sandbox Code Playgroud)

现在,当我为生产构建时false,不想手动设置dev标志,我想将isdev.js替换module.exports = true;module.exports = false;.我的具体问题是,如何自动gulp development生成gulp,以便生成一个文件dev = truegulp production生成一个文件dev = false.

node.js browserify gulp

5
推荐指数
1
解决办法
2318
查看次数

CELERY_ALWAYS_EAGER 好像没有效果

我有一个 Django + Celery 设置,可以在使用 RabbitMQ 的生产中正常工作。

AFAIK,在本地 django 设置中设置CELERY_ALWAYS_EAGER为应该就足够了True,以避免设置 RabbitMQ 进行开发。我已经这样做了,但是在任务上调用 .delay() 时,我得到:

Traceback (most recent call last):
  File "lib/python2.7/site-packages/django/core/handlers/base.py", line 132, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "lib/python2.7/site-packages/django/views/generic/base.py", line 71, in view
    return self.dispatch(request, *args, **kwargs)
  File "lib/python2.7/site-packages/django/views/generic/base.py", line 89, in dispatch
    return handler(request, *args, **kwargs)
  File "lib/python2.7/site-packages/django/views/generic/edit.py", line 215, in post
    return self.form_valid(form)
  File "app/web/views.py", line 188, in form_valid
    form.send_email()
  File "app/web/forms.py", line 17, in send_email
    send_email.delay(mail, recipients, 'Contact %s' % …
Run Code Online (Sandbox Code Playgroud)

django celery

5
推荐指数
2
解决办法
4407
查看次数

禁用进度输出 aws s3 同步而不禁用所有输出

可能是一个愚蠢的问题,但有什么方法可以禁用

Completed 1 of 12 part(s) with 11 file(s) remaining...
Run Code Online (Sandbox Code Playgroud)

使用aws s3 sync命令(来自 aws cli 工具)的进度输出。

我知道有一个--quiet选项,但我不想使用它,因为我仍然想要Upload...我的日志文件中的详细信息。

不是大问题,但会在日志文件中造成混乱,例如:

Completed 1 of 12 part(s) with 11 file(s) remaining^Mupload: local/file to s3://some.bucket/remote/file
Run Code Online (Sandbox Code Playgroud)

^M控制字符在哪里。

amazon-s3 amazon-web-services aws-cli

5
推荐指数
3
解决办法
4612
查看次数

如何防止 Mocha 捕获未处理的异常?

我正在为一个库编写一个测试套件,该套件执行处理未由catch语句处理的异常。该库侦听error滴到全局范围内的事件(例如window.addEventListener("error", ...))。

但是,如果我想测试它是否真的能够检测到未处理的异常,我不能,因为 Mocha 将此类异常视为测试失败。我不能使用像断言expect(foo).to.throw,因为如果我使用这些,那么异常被捕获expect,不再一个未处理的异常:它不会引发全球的听众,我的图书馆安装和我想测试。

我试过了,allowUncaught但这并没有解决问题。这是一个重现问题的示例测试:

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/xhtml; charset=utf-8"/>
    <link href="node_modules/mocha/mocha.css" type="text/css" media="screen" rel="stylesheet" />
    <script src="node_modules/mocha/mocha.js"></script>
  </head>
  <body>
    <div id="mocha"></div>
    <script>
      mocha.setup('bdd');
      mocha.allowUncaught();

      it("should be fine", function (done) {
        // Simulate an error thrown by asynchronous code.
        setTimeout(function () {
          throw new Error("error");
        }, 100);

        // My actual error handler is bigger than this. This is …
Run Code Online (Sandbox Code Playgroud)

javascript mocha.js addeventlistener

5
推荐指数
1
解决办法
1689
查看次数