【问题标题】:Jasmine-node and sails.js (0.10.0-rc8)Jasmine 节点和sails.js (0.10.0-rc8)
【发布时间】:2014-06-24 20:57:30
【问题描述】:

当我尝试运行像这样简单的东西时,我得到一个错误:'static() root path required'。

如果只运行一个'it',它就会通过。

有人知道有什么问题吗?

var Sails = require('sails');

describe("Crud tests:", function() {

    var app;

    beforeEach(function(done) {
        // Lift Sails and start the server
        Sails.lift({
                log: {
                    level: 'error'
                },
            }, function(err, sails) {
                console.log("sails lifted");
                app = sails;
                done(err, sails);
            });
    });

    afterEach(function(done) {
        Sails.lower(done);
        console.log('sails down');
    });


    it("1", function(done) {
        expect(1).toEqual(1);
        done();
    });

    it("2", function (done) {
        expect(2).toEqual(2);
        done();
    });

});

【问题讨论】:

    标签: sails.js jasmine-node sails-mongo


    【解决方案1】:

    见https://github.com/balderdashy/sails/issues/1860,引用如下:

    查看核心测试,即使是在我们提升/降低的测试中 每个单独的测试,总是有一个新的 Sails 实例。一世 不要认为很多测试已经进入降低/重新提升 同样的例子,我不会惊讶地发现一些全局变量 正在徘徊,搞砸了电梯序列。所以除非有 您需要它是相同的 Sails 而不是新的 Sails 的原因 使用相同的选项,我将遵循核心测试的示例并 创建一个新实例。为此,您需要 Sails 工厂, 而不是完整的 Sails 模块:

    var Sails = require('Sails/lib/app') 
    var sailsInstance = new Sails();
    sailsInstance.lift(...);
    

    【讨论】:

    • 试过这种方法,乍一看它的行为是一样的。将尝试调试它并查看是否有其他原因导致此问题。你推荐哪个测试框架?它根本不必是 Jasmine - 我只需要一种可靠且记录在案的方法来进行适当的测试。
    • 您好,感谢您的快速回答。以下是有关上述方法的一些详细信息 - 这次出现了新错误,在一个新创建的带有一个名为“lol”的控制器/模型的 Sails 应用程序上:i.imgur.com/KtqkgtB.png?1
    • 您仍在为每个测试使用相同的实例。将sailsInstance = new Sails() 放在 beforeEach 函数中。
    • 只是想让你知道——我可以从头开始使用你的 mocha 测试文档,没有任何问题——甚至不需要在每次测试之前使用sailsInstance 和提升。 Mocha 显然与 Sails 配合得很好。我遇到/遇到的唯一问题是你们提到的引导测试文件,但我什至不需要打扰它,因为当我将它全部放在规范文件中时,它可以完美地工作。
    【解决方案2】:

    我认为应该以不同的方式提升sails v0.10。下面的代码来自我在rc9 上运行的项目。

    # test/support/sails.coffee
    
    process.env.NODE_ENV = 'test'
    process.env.PORT = 1338
    
    Sails = require('sails/lib/app')
    app = Sails()
    
    beforeEach (done) ->
      app.lift 
        models: 
          migrate: 'drop' # rebuild database (optional)
      , done
    
    afterEach (done) ->
      app.lower done
    
    describe ...
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-28
      • 2013-12-16
      • 1970-01-01
      • 2015-02-06
      • 2013-12-29
      • 2017-01-11
      • 1970-01-01
      • 2014-02-17
      相关资源
      最近更新 更多