使用Mocha,Supertest进行多个测试的问题

时间:2020-04-29 14:07:40

标签: express mocha supertest

我试图在我的Express应用程序中创建和集成新的业务逻辑时使用超级测试来测试所有端点。到目前为止,一切正常,直到测试App#3,所有测试用例都运行并成功。但是,一旦我描述了新应用的测试用例-App#4,我以前的所有POST测试都将失败。如果我在没有新测试的情况下重新运行测试,那么一切都会成功。如果我仅重新运行新测试,那么一切都会成功。只有当我尝试同时运行所有测试时,它才会失败。

有人可以帮我解决这里可能出现的问题吗?我是否缺少明显的东西?感谢您的所有帮助!

const request = require('supertest');
const app = require('../app');
let subApp = { name:'', baseURL:'' };
console.log = function(m){};
// Root
describe("Elevar 2.0", ()=>{
    it("GET  /", (done)=>{
        request(app)
            .get("/")
            .expect(200, done)
    })
});

// App#1 | Order Allocator
subApp.name = 'Order Allocator'
subApp.baseURL = 'allocator'
describe(`${subApp.name}`, ()=>{

    it(`GET  /${subApp.baseURL}`, (done)=>{
        request(app)
            .get(`/${subApp.baseURL}`)
            .expect(200, done)
    })

    it(`POST /${subApp.baseURL}/upload`, (done)=>{

        request(app)
            .post(`/${subApp.baseURL}/upload`)
            .attach('filetoupload','test/app-1-order-allocator-test.csv')
            .expect(200,done)
    })
});

// App#2 | Returns Tagger
subApp.name = 'Returns Tagger'
subApp.baseURL = 'returns'
describe(`${subApp.name}`, ()=>{
    it(`GET  /${subApp.baseURL}`, (done)=>{
        request(app)
            .get(`/${subApp.baseURL}`)
            .expect(200, done)
    })

    it(`POST /${subApp.baseURL}/upload`, (done)=>{

        request(app)
            .post(`/${subApp.baseURL}/upload`)
            .attach('filetoupload','test/app-2-returns-tagger-test.xlsx')
            .expect(200, done)
    })

});

// App#3 | Replacement Automator
subApp.name = 'Replacement Automator'
subApp.baseURL = 'replacement'
describe(`${subApp.name}`, ()=>{

    it(`GET  /${subApp.baseURL}`, (done)=>{
        request(app)
            .get(`/${subApp.baseURL}`)
            .expect(200,done)      
    })

    it(`POST /${subApp.baseURL}/upload`, (done)=>{
        request(app)
            .post(`/${subApp.baseURL}/upload`)
            .attach('filetoupload','test/app-3-replacement-automator-test.xlsx')
            .expect(200, done)
    })

});

// ======================= NEW APP TO TEST ===========================
// App#4 | Shipping Service Selector
subApp.name = 'Shipping Service Selector'
subApp.baseURL = 'shipment'
describe(`${subApp.name}`, ()=>{

    it(`GET  /${subApp.baseURL}`, (done)=>{
        request(app)
            .get(`/${subApp.baseURL}`)
            .expect(200,done)      
    })

    it(`POST /${subApp.baseURL}/upload`, (done)=>{
        request(app)
            .post(`/${subApp.baseURL}/create`)
            .expect(200, done)
    })

});

0 个答案:

没有答案