#python #unit-testing #code-coverage #travis-ci
#python #модульное тестирование #покрытие кода #travis-ci
Вопрос:
Я столкнулся с проблемой в удаленной среде сборки при использовании assertCountEqual
встроенного unittest
модуля python.
Эта сборка в Travis-CI выдает эту ошибку во время выполнения coverage run -m unittest discover -v
.
Тем не менее, я могу выполнить команду в своей локальной среде — Python 3.8.5 Ubuntu 20.04.
Я попытался удалить атрибут keys
dictionary из тестовых данных, но даже тогда сборка завершилась неудачно в удаленной среде и была выполнена в моей локальной среде.
test_bfs.py
и test_dfs.py
являются файлами, на которых сборка завершается неудачно, и это репозиторий.
Это результат в моей локальной среде:
test_loop (tests.unit.test_bfs.TestBreadthFirstSearch)
Ensure no vertex points to itself. ... ok
test_number_of_vertices (tests.unit.test_bfs.TestBreadthFirstSearch)
Ensure that number of vertices is greater than 2. ... ok
test_valid_path_exists (tests.unit.test_bfs.TestBreadthFirstSearch)
Ensure a valid path exists for valid data, irrespective of order. ... ok
test_valid_path_not_none (tests.unit.test_bfs.TestBreadthFirstSearch)
Ensure valid path is returned for valid data. ... ok
test_loop (tests.unit.test_dfs.TestDepthFirstSearch)
Ensure no vertex points to itself. ... ok
test_number_of_vertices (tests.unit.test_dfs.TestDepthFirstSearch)
Ensure that number of vertices is greater than 2. ... ok
test_valid_path_exists (tests.unit.test_dfs.TestDepthFirstSearch)
Ensure a valid path exists for valid data, irrespective of order. ... ok
test_valid_path_not_none (tests.unit.test_dfs.TestDepthFirstSearch)
Ensure valid path is returned for valid data. ... ok
test_sequence (tests.unit.test_inorder_traversal.TestInOrderTraversal)
Compare expected output with tree structure. ... ok
test_common_ancestor (tests.unit.test_lowest_common_ancestor.TestLowestCommonAncestor)
Check whether node 2 is the ancestor of node 1. ... ok
test_different_branch_ancestor (tests.unit.test_lowest_common_ancestor.TestLowestCommonAncestor)
Verify ancestor when both nodes belong to different subtrees. ... ok
test_same_branch_ancestor (tests.unit.test_lowest_common_ancestor.TestLowestCommonAncestor)
Verify ancestor when both nodes belong to the same subtree. ... ok
test_sequence (tests.unit.test_postorder_traversal.TestPostOrderTraversal)
Compare expected output with tree structure. ... ok
test_sequence (tests.unit.test_preorder_traversal.TestPreOrderTraversal)
Compare expected output with tree structure. ... ok
----------------------------------------------------------------------
Ran 14 tests in 0.002s
OK
Может кто-нибудь, пожалуйста, дайте мне знать, как я могу исправить эту ошибку на Travis?
Ответ №1:
в выводе pip есть подсказка:
/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/__init__.py:83: RequestsDependencyWarning: Old version of cryptography ([1, 2, 3]) may cause slowdown.
warnings.warn(warning, RequestsDependencyWarning)
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
на самом деле работает python2.7, где assertCountEqual
не существует
Я бы предложил использовать python -m pip ...
для установки вещей — это позволит убедиться, что вы используете версию python, которую вы ожидаете
Комментарии:
1. Но перед выполнением тестовых примеров есть
python --version
, который выводитPython 3.8.0
. Разве этого недостаточно?2.
python
иpip
не являются одним и тем же исполняемым файлом, поэтому они могут поступать из разных установок3. Спасибо, Энтони! Я жду завершения сборки.
4. 🙂 У меня есть каталог с именем
queue
(иQueue
в нем также есть класс) в корне проекта, который, я думаю, может быть причиной проблемы. Я видел это здесь github.com/eternnoir/pyTelegramBotAPI/issues/298 Я рассмотрю оба аспекта, а затем подтвержду.