Покрытие работает на Windows, но не работает на Linux-машинах

В настоящее время я пишу модульные тесты для Python, для этого я использую комбинацию встроенного модуля «unittest» и внешней библиотеки под названием «coverage».

При создании отчета в окнах я получаю следующий вывод:

C:\Users\Me\Project> coverage report --include package/*
...
package\tests\scanner.py                 53      0   100%
package\tests\scans.py                  169     32    81%   202-235
---------------------------------------------------------------------------
TOTAL                                          1344    336    75%

Однако, когда я развертываю это на машине под управлением Linux, это происходит:

$ coverage report --include package/*
Name    Stmts   Miss  Cover   Missing
-------------------------------------
No data to report.
ERROR: Job failed: exit code 1

Если я использую следующее, он находит файлы, но не находит файлы во вложенных файлах:

$ coverage report -m package/**/*.py

Кто-нибудь знает, как я могу это исправить?


person Paradoxis    schedule 10.07.2017    source источник
comment
Вы уверены, что находитесь в каталоге сценариев в Linux при развертывании этой команды?   -  person Harshith Thota    schedule 10.07.2017
comment
@HarshithThota да, все остальные сценарии, которые я выполняю, работают нормально, просто кажется, что они ведут себя очень странно при передаче путей к покрытию   -  person Paradoxis    schedule 10.07.2017
comment
Вы устанавливали файлы поддержки python-dev и gcc перед установкой покрытия?   -  person Harshith Thota    schedule 10.07.2017
comment
@HarshithThota да, последняя команда, которую я показал, похоже, работает, но просто не включает все подфайлы в моей папке package   -  person Paradoxis    schedule 10.07.2017


Ответы (1)


Похоже, это проблема, связанная с подстановочными знаками в Bash. Выполнение следующих работ:

coverage report -m unittest package/\*
person Paradoxis    schedule 11.07.2017
comment
Использование жестких кавычек, вероятно, проще, поэтому вам не нужно запоминать все специальные символы bash: coverage report -m unittest 'package/*' - person Anthony Sottile; 25.07.2017