2015-11-29 56 views
0

我已經注意到。由於沒有明顯的模式,有時候我跑我的摩卡測試,並獲得了失敗的斷言。然後我立即再次運行它。沒有做任何改變,斷言全部通過。有什麼我做錯了嗎?有緩存的測試數據嗎?具有相同數據運行摩卡多次產生不同的結果

我,可惜的是不知道作什麼崗位,因爲我似乎無法引腳下來到任何一件事情,但這裏是一個功能我已經看到了發生在

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); 
      }); 
     }); 
    }); 

當斷言失敗是儘管不良SQL語句

assert(err != undefined); 

犯錯是返回null。

回答

0

你應該分享當測試案例是越來越沒你所得到的錯誤。

但是從你的代碼和問題描述,我可以猜測,你的MySQL調用必須服用的時間比摩卡測試情況下,默認的超時值。而在運行測試用例第二次MySQL必須從緩存中返回數據,因此防止超時。

要調試儘量增加你的測試用例的默認超時,並在使用中您所描述的呼叫 - >

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

請注意,這可能不是解決辦法,請提供爲什麼斷言是越來越失敗,如果上面提到的東西不起作用。

相關問題