Po pierwsze, poniższy kod działa. Jednak nie widziałem jeszcze nikogo, kto to robi, więc zastanawiam się, czy jest to uzasadnione i czy brakuje mi nieprzewidzianych wad.Kątomierz Jasmine opisuje bloki zagnieżdżone w tym bloku
Kontekst polega na tym, że piszę test E2E z Kątomierzem, który wykorzystuje bloki opisujące styl jaśminowy. Moim celem jest załadowanie strony i uruchomienie kilku bloków testowych it
bez ponownego ładowania tej strony za każdym razem (ponieważ jest to czasochłonne).
Konstrukt mam to:
describe("Homepage", function() {
beforeEach(function() {
browser.get("/"); //loads the page
});
it('elements', function() {
describe('test group', function() {
it('test 1', function() {
//run stuff 1
});
it('test2', function() {
//run stuff 2
});
})
});
});
Zdaję sobie sprawę, alternatywą jest tylko, aby to zrobić:
describe("Homepage", function() {
beforeEach(function() {
browser.get("/"); //goes to homepage
});
it('elements', function() {
//run stuff 1
//run stuff 2
});
});
Ale problemem jest to, że nie można oddzielić testy i skończyć z dużym blokiem it
. Chcę jakoś uniknąć problemu z uruchomieniem przed każdym dowolnym razem, ale nadal być w stanie mieć ładnie oddzielone bloki testowe zestawu.
Nawiasem mówiąc, próbowałem to również:
describe("Homepage", function() {
browser.get("/"); //goes to homepage
it('elements', function() {
//run stuff 1
//run stuff 2
});
});
oprócz tego nie działa, gdy masz wiele specyfikacje jak ten. Wszystkie przeglądarki browser.get() są uruchamiane jedna po drugiej, zanim testy zostaną uruchomione.
To jest dobry pomysł. Pozwól mi poczekać dzień lub dwa przed zaakceptowaniem, czy ktokolwiek ma jakieś pomysły. – wlingke
Chciałem również dodać do tego konkretnego scenariusza 'browser.get()' możesz również sprawdzić stronę, na której jesteś, używając 'browser.getCurrentUrl()' i sprawdź bieżącą stronę przed "pobraniem" jej. – wlingke