Ошибка импорта при запуске модульных тестов с терминала - PullRequest
1 голос
/ 11 февраля 2020

Я работаю python 2.7, используя pipenv на Ma c.

У меня есть файл модульного теста с именем test_FileMerger.py в моем каталоге тестов. Структура папки

При попытке запустить я получаю ошибку ImportError - python -m unittest tests/test_FileMerger.py (Я также попробовал полный путь и получаю то же сообщение об ошибке.)

ImportError: Import by filename is not supported.

Импорт по имени файла не поддерживается

Когда я запускаю тест в Pycharm. Тесты все проходят. ОК Выполнено 7 тестов за 0,051 с ОК

Вот мой файл модульных тестов.

import unittest
import pandas as pd
from main.functions import LowerCaseColumns, RemoveColumn

class Test_Functions(unittest.TestCase):
    def test_LowerCaseColumns_SingleDataFramePassed(mock_LowerCaseColumns):

    def test_LowerCaseColumns_MultipleDataFramesPassed(mock_LowerCaseColumns):

    def test_LowerCaseColumns_StringPassedReturnsAttributeError(mock_LowerCaseColumns):

    def test_LowerCaseColumns_IntPassedReturnsTypeError(mock_LowerCaseColumns):

    def test_LowerCaseColumns_BoolPassedReturnsTypeError(mock_LowerCaseColumns):

    def test_RemoveColumn_SingleColumnChanged(mock_RemoveColumn):

    def test_RemoveColumn_MultipleColumnsChanged(mock_RemoveColumn):

if __name__ == '__main__':
    unittest.main()

Ответы [ 2 ]

1 голос
/ 11 февраля 2020

Ваш sys.path, вероятно, поврежден из-за передачи имен файлов непосредственно в unittest. Предпочитают передавать имена модулей или использовать python -munittest discover.

Также ваши методы тестирования не имеют смысла, первый параметр метода - self, и AFAIK они не принимают никаких других параметров.

0 голосов
/ 11 февраля 2020

В вашей системе вы, вероятно, имеете следующие пункты: - python2, который не поддерживает Import by filename, - python3, который не установлен pandas, и python3.8.1 внутри Pycharm, который соответствует всем требованиям для запуска ваших тестов. Решение: установите pandas для системы python3 (pip3 install pandas).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...