2012-10-10 10 views
5

I okazało się, że są 2 sposoby na odczyt parametrów w TestNG pliku konfiguracyjnym XML:Użycie adnotacji @Parameter lub ITestContext do odczytania pliku konfiguracyjnego TestNG?

  1. użytku @Parameter adnotacji i definiują nazwy parametrów po adnotacji

  2. użytku ITestContext jako argument dla klasy testowej , DataProvider lub Factory i użyj getCurrentXmlTest() i getParameter(), aby odczytać parametr.

Czy którykolwiek z tych sposobów jest preferowany z jakiegokolwiek powodu na drugim? i czy jest jakiś inny sposób na zrobienie tego?

Odpowiedz

3

Myślę, że różnica polega na zakresie. Gdybym potrzebował tego samego parametru we wszystkich moich pakietach testów dla np. zmienne env, chciałbym użyć go w słuchacza wykonawczego ITestListener lub ISuiteListener (dla zakresu Suite), a następnie użyć ITestContext/Suitecontext zastosować wartość we wszystkich moich testów pod <test> lub pod <suite>

Jednakże, jeśli muszę bardzo specyficzny dla konkretnych przypadków testowych, a następnie wybrałbym adnotację @Parameter na tych konkretnych testach.

Ponadto @Parameter może przyjmować tylko proste wartości, więc mogą występować przypadki, w których testy wymagają różnych obiektów (zamiast łańcuchów) w oparciu o pewną wartość parametru. W takim przypadku wolałbym czytnik danych, odczytywanie wartości param (twoja druga opcja, chociaż argument dla testklasy wydaje mi się niepoprawny), tworzenie obiektów, a następnie podawanie ich do testów. (np. prawdopodobnie nazwa pliku właściwości jest wartością parametru, która jest odczytywana, a obiekty tworzone na podstawie danych w pliku właściwości i podawane jako różne dane testowe do testów).