Ich sende eine Netzwerkanfrage in einem Testfall ab, aber manchmal dauert es länger als 2 Sekunden (das Standard-Zeitlimit).
Wie kann ich das Zeitlimit für einen einzelnen Testfall erhöhen?
Ich sende eine Netzwerkanfrage in einem Testfall ab, aber manchmal dauert es länger als 2 Sekunden (das Standard-Zeitlimit).
Wie kann ich das Zeitlimit für einen einzelnen Testfall erhöhen?
Sie könnten auch darüber nachdenken, einen anderen Ansatz zu wählen und den Aufruf der Netzwerkressource durch ein Stub- oder Mock-Objekt zu ersetzen. Mit Sinon können Sie die App vom Netzwerkdienst entkoppeln und sich auf Ihre Entwicklungsarbeit konzentrieren.
Für die Testnavigation auf Express
:
const request = require('supertest');
const server = require('../bin/www');
describe('navigation', () => {
it('Login-Seite', function(done) {
this.timeout(4000);
const timeOut = setTimeout(done, 3500);
request(server)
.get('/login')
.expect(200)
.then(res => {
res.text.should.include('Login');
clearTimeout(timeOut);
done();
})
.catch(err => {
console.log(this.test.fullTitle(), err);
clearTimeout(timeOut);
done(err);
});
});
});
In diesem Beispiel beträgt die Testzeit 4000 (4s).
Hinweis: setTimeout(done, 3500)
ist geringer als done
innerhalb der Testzeit aufgerufen wird, aber clearTimeout(timeOut)
vermeidet, dass die gesamte Zeit verwendet wird.
Dies hat für mich funktioniert! Konnte nichts finden, um es mit before() zu machen
describe("Wenn ein lang laufender Test läuft", () => {
it("Sollte nicht nach 2000 ms abbrechen", async () => {
let service = new SomeService();
let result = await service.callToLongRunningProcess();
expect(result).to.be.true;
}).timeout(10000); // Benutzerdefiniertes Timeout
});
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.