【问题标题】:Running Mocha multiple times with the same data produces different results使用相同的数据多次运行 Mocha 会产生不同的结果
【发布时间】:2015-11-29 06:08:41
【问题描述】:

我已经注意到了。由于没有明显的模式,有时我运行我的 mocha 测试并得到一个失败的断言。然后我立即再次运行它。无需进行任何更改,断言全部通过。有什么我做错了。是否有缓存的测试数据?

不幸的是,我不知道该发布什么,因为我似乎无法将其归结为任何一件事,但这是我见过的一个功能

mysqltest.js

describe('get_tablet_station_name', function() {
        it ('isSuccessful', function() {
            mysqlDao.init();

            var callback = sinon.spy();

            mysqlDao.get_tablet_station_name(state.TABLET_NAME, function(err, result) {
                assert(err == undefined) 
            });
        });

        it ('isUnsuccessful', function() {
            mysqlDao.init();

            var callback = sinon.spy();

            mysqlDao.get_tablet_station_name("'''%\0", function(err, result) {
                assert(err != undefined);
            });
        });
    });

当断言失败时

assert(err != undefined);

尽管 SQL 语句错误,但错误返回 null。

【问题讨论】:

    标签: node.js mocha.js sinon


    【解决方案1】:

    您应该分享测试用例失败时遇到的错误。

    但是根据您描述的代码和问题,我可以猜测您的 mysql 调用所花费的时间一定比 mocha 测试用例的默认超时时间要长。在第二次运行测试用例时,mysql 必须从缓存中返回数据,从而防止超时。

    要调试,请尝试增加测试用例的默认超时时间,并在内部描述调用 ->

    describe('get_tablet_station_name', function() {
    this.timeout(10000);
    ......//rest of the code
    

    请注意这不是解决方案,如果上述事情不起作用,请提供断言失败的原因。

    【讨论】:

      猜你喜欢
      • 2013-06-13
      • 1970-01-01
      • 2012-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-23
      • 2021-11-17
      • 1970-01-01
      相关资源
      最近更新 更多