1

我正在尝试流星的莱卡测试框架。主页中的第二个示例使用observe(),我认为它没有正确观察。

suite('Posts', function() {
    test('using both client and server', function(done, server, client) {
    server.eval(function() {
      Posts.find().observe({
        added: addedNewPost
      });
      function addedNewPost(post) {
        emit('post', post);
      }
    }).once('post', function(post) {
      assert.equal(post.title, 'hello title');
      done();
    });
    client.eval(function() {
      Posts.insert({title: 'hello title'});
    });
  });
});

我总是超时。增加超时时间没有帮助。我无法弄清楚我做错了什么,也无法弄清楚如何获得更详细的输出。通过调用 console.log() 来增加测试没有任何效果。

输出:

1) Posts using both client and the server:
 Error: timeout of 2000ms exceeded
  at null.<anonymous> (/usr/local/share/npm/lib/node_modules/laika/node_modules/mocha/lib/runnable.js:165:14)
  at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)
4

2 回答 2

2

我对节点 0.10.10 的 laika 也有类似的问题。我切换到节点 0.10.4,超时消失了。

我不知道你的情况和我的情况是否完全一样,但值得一试。

于 2013-06-15T13:33:29.280 回答
0

mongodb 可能是您的瓶颈。

以这种方式启动 mongodb:

mongod --smallfiles --noprealloc --nojournal

我能够在默认的 5000 毫秒超时下运行 laika 测试。但是,如果您在慢速计算机上运行它,您可以简单地更改 laika 默认超时:

莱卡-t 10000

以我的经验,它与nodejs的版本无关。然而,mac os x 版本中存在一些问题,将 cpu 设置为空闲时大约 30% 到 60%+。

于 2014-06-07T20:48:11.297 回答