Cypress Создать тесты динамически - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть файл до c. json, который содержит маршруты, доступные в моем приложении. Количество маршрутов будет меняться время от времени. Я хотел бы получить это значение на c во время выполнения, посетив URL (например, http://localhost: 8080 / на c. json) и динамически генерировать тесты для каждого доступного маршрута. Ниже приведен фрагмент, который я пытаюсь использовать для этого:

 describe('Load Samples',()=>{
    let samples:Root={toc:[]};
    cy.request('http://localhost:8080/toc.json')
        .its('body')
        .then((data)=>samples = data);

    it('Samples Were Loaded',()=>{
          expect(samples).to.have.property('toc').to.have.length.above(0);
    });

    describe('Samples',()=>{
        if(samples.toc.length > 0){
            samples.toc.forEach(node => {
                     describe(node.name,()=>
                     {
                         node.items.forEach(item=>{
                             it(item.name,()=>{
                                  cy.visit(`http://localhost:3001/sample/${item.path}`)
                             })
                         })
                     })
                 });
             }
    })
})

Проблема в том, что samples.length всегда остается равным 0, и, следовательно, мои тесты не генерируются. Любые идеи / предложения о том, что я мог бы упустить?

...