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

Node.js 使用相同的数据多次运行Mocha会产生不同的结果,node.js,mocha.js,sinon,Node.js,Mocha.js,Sinon,我注意到了。由于没有可识别的模式,有时我运行我的mocha测试并得到一个失败的断言。然后我立即再次运行它。不做任何更改,断言都通过了。是不是我做错了什么。是否存在缓存的测试数据 一、 不幸的是,我不知道该发布什么,因为我似乎无法将其与任何一件事联系起来,但这里有一个函数我看到了它的出现 mysqltest.js describe('get_tablet_station_name', function() { it ('isSuccessful', function() {

我注意到了。由于没有可识别的模式,有时我运行我的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语句不正确,err仍返回null。

当测试用例失败时,您应该共享得到的错误

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

要进行调试,请尝试增加测试用例的默认超时时间,对于这种情况,请描述call->

describe('get_tablet_station_name', function() {
this.timeout(10000);
......//rest of the code
请注意,这可能不是解决方案,请提供如果上述操作不起作用,则断言失败的原因