2013-10-04 17 views
7

Napisałem wiązkę testową do testów systemowych naszego kodu za pomocą pytest. Te testy są używane w naszym systemie ciągłej integracji, więc używam opcji wyjścia jpg xml. Obcinanie długich łańcuchów przez pytest powoduje problemy. Wiem, że mogę temu zapobiec za pomocą opcji -vv, ale wtedy daje to pełne wyniki dla wyników każdego testu, który jest trudny do odczytania. Zasadniczo chcę inny sposób, aby zapobiec obcinania długich ciąg co najmniej w pliku junit xml. Gdyby działało również na wyjściu konsoli, byłoby lepiej, ale nie było to konieczne.Zapobieganie przycinaniu długich łańcuchów w pytestach

Nasz kod generuje raporty z dużą liczbą wartości i porównuję dane wyjściowe do zestawu danych wyjściowych, o których wiadomo, że są poprawne. Zgłaszam wszystkie pola, które są błędne, nie tylko pierwszy błąd. Tak więc generuję listę ciągów znaków z jednym błędem na ciąg. Następnie łączę ciągi z znakami nowej linii, aby utworzyć jeden długi ciąg i długi ciąg zawierający wszystkie błędy. Jeśli stwierdzenie nie powiedzie się, muszę zobaczyć całą zawartość ciągu, która może wynosić kilkaset linii.

errors = [] 
error.extend(get_report_errors()) 
s = '\n'.join(errors) 
assert (s == '') 

Wszelkie sugestie

Używam Pythona 2.6 i 2.7 oraz pytest 2.3.5. Mogę zaktualizować wersję Pythona potrzebnego.

Odpowiedz

1

Możesz użyć flagi tb to jest wyjście traceback dla pytest. Istnieje kilka opcji: --tb=style traceback print mode (auto/long/short/line/native/no)

Musisz wybrać to, co najlepsze dla Ciebie.

Powiązane problemy