Pytanie Czy istnieje konwencja pozwalająca odróżnić testy integracji Pythona od testów jednostkowych?


Najczęstszym sposobem budowania pakietu Pythona przy użyciu testów jednostkowych jest:

package/
    __init__.py
    module_1.py
    module_2.py
    module_n.py
    test/
        __init__.py
        test_module_1.py
        test_module_2.py
        test_module_n.py

Chciałbym rozróżnić testy jednostkowe (metod i funkcji) i testy integracyjne (przy użyciu całego pakietu i ewentualnie z wykorzystaniem innych zasobów). Być może te testy powinny znajdować się w różnych pakietach, mieć różne nazwy plików i / lub zawierać pewne komentarze do programu docstring.

Czy istnieje standardowa konwencja do tego?


31
2018-03-26 14:14


pochodzenie




Odpowiedzi:


W naszym projekcie mamy testy jednostkowe w każdej paczce, tak samo jak twoja sprawa, testy integracyjne, testy systemowe, jako osobny pakiet na najwyższym poziomie, tj .:

package_1/
  __init__.py
  module_1.py
  module_n.py
  test/
    __init__.py
    test_module_1.py
    test_module_n.py
package_n/
  __init__.py
  module_1.py
  module_n.py
  test/
    __init__.py
    test_module_1.py
    test_module_n.py
systemtest/
  __init__.py
  systemtest_1.py
  systemtest_n.py

Korzystałbym z tej konwencji, nawet jeśli masz tylko jeden pakiet w projekcie. Jednak nie jestem pewien, czy jest to standardowa konwencja, czy nie.


21
2018-04-08 14:22



Naprawdę chciałbym zachować testy integracyjne dla pakietu w tym pakiecie. - Jace Browning
W takim przypadku utworzyłbym 2 oddzielne podpakiety iside your package (jeden o nazwie test i jeden o nazwie systemtest), ale to na pewno nie jest konwencja, ale moje przypuszczenie. - running.t
@ JaceBrowning: Czy nie jest to częścią "testu integracji", że może być zaangażowany więcej niż jeden pakiet? W takim przypadku pozycja tego testu powinna być powyżej jakiegokolwiek testu jednostkowego. - Christoph Jüngling
@ ChristophJüngling, przez "inne zasoby" mam na myśli rzeczy takie jak plik i sieć IO - rzeczy, które normalnie powinny być wyśmiewane w testach jednostkowych, ale włączone w testy integracyjne. - Jace Browning