GOOGLE ADS

dimanche 1 mai 2022

Erreur : Délai d'expiration de 30 000 ms dépassé. Pour les tests asynchrones et les hooks, assurez-vous que "done()" est appelé ; si vous retournez une promesse, assurez-vous qu'elle se résout

J'essaie d'écrire des tests pour l'électron en utilisant le spectron.

C'est mon code.

describe ('Application launch', function(done) {
this.timeout(30000);
const app = new Application({
path: electronBinary,
args: [baseDir],
});
before(() => app.start());
after(() => app.stop());
it('shows an initial window', async () => {
await app.client.waitUntilWindowLoaded();
const count = await app.client.getwindowcount();
assert.equal(count,1);
});
});

Cependant, lorsque je lance npm testl'erreur que je reçois est

 1) Application launch "before all" hook:
Error: Timeout of 30000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.
2) Application launch "after all" hook:
Error: Application not running
at Application.stop (node_modules\spectron\lib\application.js:58:48)
at Context.after (test\spec.js:19:19)

Dois-je ajouter des fonctions aux crochets existants ?


Solution du problème

Vous n'avez pas utilisé "done" comme rappel dans votre fonction it. Vous n'êtes pas non plus obligé d'utiliser done dans le rappel de description. De plus, puisque done() rend déjà votre code asynchrone, vous n'avez pas besoin d'utiliser le mot-clé async. Ma soluce:

describe ('Application launch', function() {
this.timeout(30000);
const app = new Application({
path: electronBinary,
args: [baseDir],
});
before(() => app.start());
after(() => app.stop());
it('shows an initial window', (done) => {
await app.client.waitUntilWindowLoaded();
const count = app.client.getwindowcount();
assert.equal(count,1);
done();
});
});

J'espère que cela aide!

Aucun commentaire:

Enregistrer un commentaire

Comment utiliseriez-vous .reduce() sur des arguments au lieu d'un tableau ou d'un objet spécifique ?

Je veux définir une fonction.flatten qui aplatit plusieurs éléments en un seul tableau. Je sais que ce qui suit n'est pas possible, mais...