Есть ли способ НЕ выполнять функцию beforeEach только для определенных тестов (блоки it) - PullRequest
0 голосов
/ 12 марта 2020

Есть ли способ НЕ выполнять функцию beforeEach только для определенных тестов (блоки 'it').

У меня есть файл очистки транспортира с функцией afrereach, который должен запускаться после каждого теста. Есть ли способ не выполнять их для определенных тестовых случаев (блоки 'it').

afterEach(() => {
    common.performance.captureMemory();
    replay.cleanReplay();
    dialog.cleanupDialog(); // Will also close search page source selector dialog if open
    pinboards.closeVizContextIfOpen();
    common.util.dismissNotificationIfPresent();
    formula.closeFormulaEditorIfOpen();
    common.util.ensureLoggedInAsDefaultUser();
    common.util.clearStickerSelection();
    common.util._uniqueNameSeed = -1;
});

I tried this:
global.defaultJasmineAfterEach = () => {
    common.performance.captureMemory();
    replay.cleanReplay();
    dialog.cleanupDialog(); // Will also close search page source selector dialog if open
    pinboards.closeVizContextIfOpen();
    common.util.dismissNotificationIfPresent();
    formula.closeFormulaEditorIfOpen();
    common.util.ensureLoggedInAsDefaultUser();
    common.util.clearStickerSelection();
    common.util._uniqueNameSeed = -1;
};

global.overrideAfterEachOnce = (fn) => {
    global.jasmineAfterEach = fn;
};

global.jasmineAfterEach = defaultJasmineAfterEach;

// This beforeEach block will run after every test, we use this to perform some cleanup that might
// be necessary before next test can run.
afterEach(() => {
    global.jasmineAfterEach();
    if (global.jasmineAfterEach !== global.defaultJasmineAfterEach) {
        global.jasmineAfterEach = global.defaultJasmineAfterEach();
    }
});```

Thanks in advance. :)

Ответы [ 2 ]

1 голос
/ 12 марта 2020

beforeEach и afterEach находятся в области "description ()"

describe('title', () => { 

    beforeEach(...)
    it(...)
    it(...)

})

, так что, может быть, вы хотите указать разные "это" для разных "описаний"?

0 голосов
/ 12 марта 2020

Я думаю, вы должны проверить этот ответ , но самый простой способ для меня был бы следующим. Вместо того, чтобы помещать его в файл конфигурации, создайте отдельный файл с именем afterEach. js

afterEach. js

module.exports = function () {
    afterEach(() => {
        console.log('afterEach complete')
    })
}

Для любого значения c который требует после каждого использования require('./afterAll')(); в пределах описывающего блока

spe c. js

describe('angularjs homepage todo list', function () {
  require('./afterEach')();

  it('should add a todo', function () {
    expect(true).toBe(false);

  });
  it('should add a todo2', function () {
    expect(true).toBe(true);

  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...