使用相同数据多次运行Mocha会产生不同的结果

时间:2015-11-29 06:08:42

标签: node.js mocha sinon

我一直在注意。没有可辨别的模式,有时我会运行我的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。

1 个答案:

答案 0 :(得分:0)

当测试用例失败时,您应该分享您获得的错误。

但是从你描述的代码和问题来看,我猜你的mysql调用必须花费的时间大于mocha测试用例的默认超时。在第二次运行测试用例时,mysql必须从缓存中返回数据,从而防止超时。

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

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

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