Jestjs 如何使Jest按特定顺序运行测试?

Jestjs 如何使Jest按特定顺序运行测试?,jestjs,Jestjs,我正在使用Jest运行Selenium测试。我希望登录测试在其余的webapp功能测试之前进行。我可以使用jest-I按顺序运行文件,但我找不到控制文件运行顺序的方法。我试图改变文件名,希望它是按文件名的排序顺序,但无论我如何调用文件,它仍然以相同的顺序运行。如何做到这一点 这是关于按特定顺序运行,而不是按顺序运行。我已经在做--runInBand(-I是它的别名)。这在玩笑中是不可能的(请参阅),而且似乎也不可能(请参阅) 一个选项是Jest有两种不同的配置,一种用于登录测试,另一种用于其余测

我正在使用Jest运行Selenium测试。我希望登录测试在其余的webapp功能测试之前进行。我可以使用
jest-I
按顺序运行文件,但我找不到控制文件运行顺序的方法。我试图改变文件名,希望它是按文件名的排序顺序,但无论我如何调用文件,它仍然以相同的顺序运行。如何做到这一点


这是关于按特定顺序运行,而不是按顺序运行。我已经在做
--runInBand
-I
是它的别名)。

这在玩笑中是不可能的(请参阅),而且似乎也不可能(请参阅)

一个选项是Jest有两种不同的配置,一种用于登录测试,另一种用于其余测试,并且在
package.json
文件中有两个脚本条目

// package.json
...
"scripts": {
  "test": "npm run test:login && npm run test:other"
  "test:login": "jest --config jest.login.config.js",
  "test:other": "jest --config jest.other.config.js"
}
我希望有帮助

您现在可以使用测试序列器。检查文档:


您可能希望将测试序列器与
--runInBand
选项结合起来,以获得确定的结果。

在本例中,我使用一个测试文件,其中需要.js,以便:

//main.test.js
require("db.js");
require("tables.js");
require("users.js");
require("login.js");
require("other.js");
例如,文件users.js:

const request = require("supertest");
const assert = require("assert");
const { app, pool } = require("../src/app");

describe("POST /user/create", () => {
    it("return unautorized without token", () => {
        return request(app)
            .post("/user/create")
            .set('Accept', 'application/json')
            .send({ token: "bad token..." })
            .expect(401);
    });
    it("create user with token ok", () => {
        return request(app)
            .post("/user/create")
            .set('Accept', 'application/json')
            .send({
                "email": "user1@dom.com",
                "name": "John Doe",
                "pass": "1234",
                "token": "good token..."
            })
            .expect(200)
            .expect('Content-Type', /json/)
            .then(r => {
                assert.deepStrictEqual(r.body, {
                    status: true,
                    info: 'user created',
                    data: { email: 'user1@dom.com', name: 'John Doe' }
                });
                pool.end();
            })
            ;
    });
});
避免在文件中使用单词test或spec,只需使用1.test.js即可