Mam następującą konfigurację:Running pracownika Seler w unittest
- Django Seler projekt zadaniem Rejestruje
foo
- Projekt B: Używa send_task seler, aby zadzwonić
foo
- Projekt A i projekt B mają ta sama konfiguracja: SQS, msgpack dla serializacji, gzip itp.
- Każdy projekt działa na innym repozytorium github
Mam przetestowane telefony komórkowe do "foo" w projekcie A, nie używając w ogóle Celery, tylko foo(1,2,3)
i potwierdzam wynik. Wiem, że to działa.
Przeanalizowałem urządzenie, że parametr send_task w projekcie B wysyła odpowiednie parametry.
Czego nie testuję i potrzebuję twojej porady na temat integracji między dwoma projektami. Chciałbym mieć unittest że:
- rozpocząć pracownika w ramach projektu powstanie
- Wyślij zadanie przy użyciu kodu projektu B
- twierdzić, że pracownik rozpoczął się pierwszy etap dostaje zadanie, z parametrami przesłanymi w drugim kroku i że funkcja
foo
zwróciła oczekiwany wynik.
Wygląda na to, że można to zhakować, używając podprocesora Pythona i analizując dane wyjściowe pracownika, ale to jest brzydkie. Jakie jest zalecane podejście do testowania jednostek w takich przypadkach? Jakiś fragment kodu, który możesz udostępnić? Dzięki!
Pomóż nam zrozumieć, dlaczego chcesz sprawdzić, co dzieje się po stronie pracownika? Czy nie wystarczy przetestować od strony wzywającej i czy prawidłowa odpowiedź oznacza, że test zakończył się sukcesem? –