Aus irgendeinem Grunde der erste Einheit Test meines Testanzugs ist immer langsamer als die andere. Wenn die Tests in meiner Konsole ausführen bekomme ich so etwas wie:Mocha Erster Unit-Test immer langsamer als die anderen
√ unit test A (483ms)
√ unit test B
Aber in dem Code, wenn ich das Gerät zu testen B ändern, um über dem Unit-Test A, bekomme ich diese:
√ unit test B (470ms)
√ unit test A
Für einige Grund ist, dass die ersten Unit-Tests immer langsamer werden und deswegen denke ich, der Grund dafür ist, dass ich nicht in meinem Code, sondern in Mocha langsam bin. Zur gleichen Zeit habe ich andere Testanzüge, die anderen Code testen und es funktioniert gut, so dass ich verwirrt bin. Vielleicht ist das nicht Mocha, aber weil ich nicht sicher bin, muss ich fragen, ob Sie eine Vorstellung davon haben, was passieren kann.
Der Test ist so etwas wie diese:
let target = require('...');
describe('Module of unit tests', function() {
this.timeout(1000);
before(function() {
...
target = proxyquire('...', {
'node-chartist': sinon.stub().resolves('...'),
'ws': function(){
return {
'close': function(){ /*Do nothing*/ },
'send': function(){ /*Do nothing*/ },
'on': function(arg, callback){
...
}
};
}
});
});
//Warning happens here
it('unit test A', function() {
...
target();
...
});
//If this unit test goes above unit test A, this will be the one to get
the warning.
it('unit test B', function() {
...
target();
...
});
})
`
ich in anderen Projekten ohne Erfolg zu reproduzieren versucht, so bezweifle ich, Sie in der Lage sein werden, es zu tun, aber was ich tue Führen Sie die Tests mit dem obigen Unit-Test A aus und führen Sie dann die Tests mit dem Unit-Test B oben aus.
Versionen:
node v6.11.4
npm 3.10.10
mocha 4.0.1
sinon 4.1.2
chai 3.5.0
proxyquire 1.8.0
I Fiedler verwendet, um sicherzustellen, dass, während der Unit-Tests ausführen, keine Netzwerkanforderung für außen gemacht wurde, um sicherzustellen, dass die Verzögerung nicht durch eine Netzwerkanforderung verursacht wird.
Ich habe auch den Code getestet, den der Komponententest testet, und ich sehe wirklich keinen Grund für die Verzögerung in jedem Fall.
Danke für jede Hilfe.