【问题标题】:Sails.js: How to actually run testsSails.js:如何实际运行测试
【发布时间】:2015-01-06 09:16:10
【问题描述】:

总的来说,我对sails、node 和js 完全陌生,所以我可能会遗漏一些明显的东西。

我正在使用sails 0.10.5 和节点0.10.33。

在sails.js 文档中有一个关于测试的页面http://sailsjs.org/#/documentation/concepts/Testing,但它并没有告诉我如何实际运行它们。

我已经根据该文档设置了目录,添加了一个名为 test/unit/controllers/RoomController.test.js 的测试,现在我希望它运行。

没有“sails test”命令或类似命令。我也没有发现任何关于如何添加任务的迹象,因此测试总是在“起航”之前运行。

【问题讨论】:

    标签: javascript node.js unit-testing sails.js mocha.js


    【解决方案1】:

    UPDATE-2: 在苦苦思索以这种方式运行单元测试需要多少时间之后,我决定创建一个模块来加载模型并将它们转换为全局变量,就像sails 一样,但没有采取这么多。即使你去掉了每个钩子,但是 orm-loader 取决于机器,它可以很容易地花费几秒钟而不需要任何测试!当你添加模型时它会变慢,所以我创建了这个名为 waterline-loader 的模块,所以你只能加载基础(大约快 10 倍),模块不稳定需要测试,但欢迎您使用它或修改它以满足您的需求,或者在这里帮助我改进它 -> https://github.com/Zaggen/waterline-loader


    UPDATE-1: 我已将与使用 mocha 运行测试相关的信息添加到 Running tests 部分下的 docs


    只是为了扩展其他人所说的话(特别是 Alberto Souza 所说的话)。

    您需要两个步骤才能让摩卡咖啡随心所欲地与帆搭配使用。首先,如sails.js Docs 中所述,您需要在运行测试之前启动服务器,为此,您需要在根路径(可选) 你的测试 (test/bootstrap.test.js) 将首先由 mocha 调用,然后它会调用你的测试文件。

    var Sails = require('sails'),
      sails;
    
    before(function(done) {
      Sails.lift({
        // configuration for testing purposes
      }, function(err, server) {
        sails = server;
        if (err) return done(err);
        // here you can load fixtures, etc.
        done(err, sails);
      });
    });
    
    after(function(done) {
      // here you can clear fixtures, etc.
      sails.lower(done);
    });
    

    现在在你的 package.json 中,在 scripts 键上,添加这一行(忽略 cmets)

     // package.json ....
     scripts": {
        // Some config 
        "test": "mocha test/bootstrap.test.js test/**/*.test.js"
      },
     // More config
    

    这将加载 bootstrap.test.js 文件,提升您的 Sails 服务器,然后运行所有使用“testname.test.js”格式的测试,如果您可以将其更改为“.spec.js”喜欢。

    现在您可以使用npm test 运行您的测试。

    注意,您可以在不修改 package.json 并在命令行中输入 mocha test/bootstrap.test.js test/**/*.test.js 的情况下执行相同的操作

    PST:如需更详细的 bootstrap.test.js 配置,请查看 Alberto Souza 答案或直接查看 hist github repo 中的 file

    【讨论】:

      【解决方案2】:

      在 we.js 中查看我的测试结构:https://github.com/wejs/we-example/tree/master/test

      您可以复制并粘贴到您的sails.js 应用程序中,并在bootstrap.js 中删除we.js 插件功能

      并更改您的 package.json 以在 npm 测试中使用 set correct mocha 命令:https://github.com/wejs/we-example/blob/master/package.json#L10

      -- 编辑--

      我创建了一个简单的sails.js 0.10.x 测试示例,参见:https://github.com/albertosouza/sails-test-example

      【讨论】:

      • 非常感谢。我现在可以使用npm test 运行测试。
      【解决方案3】:

      鉴于他们没有给出特殊说明并且他们使用 Mocha,我希望当您在 test 目录中时从命令行运行 mocha 会工作。

      【讨论】:

        【解决方案4】:

        Sails 使用 mocha 作为默认测试框架。 但是 Sails 本身并不处理测试执行。

        所以你必须使用mocha 命令手动运行它。

        但是有一篇文章如何使所有 Sails 的东西都包含在测试中。 http://sailsjs.org/#/documentation/concepts/Testing

        【讨论】:

          猜你喜欢
          • 2011-12-15
          • 2021-09-11
          • 1970-01-01
          • 2023-04-10
          • 1970-01-01
          • 2015-08-28
          • 1970-01-01
          • 2011-08-08
          相关资源
          最近更新 更多