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.