2016-06-23 9 views
-1

Я действительно не понимаю ... Если вам нужны скриншоты некоторых настроек, скажите мне, потому что я действительно не знаю, почему это работает в PyCharm, но не за пределами Pycharm ...Python-скрипт отлично работает в PyCharm, но в терминале не

from selenium import webdriver 
from selenium.webdriver.support.ui import WebDriverWait 
import unittest 
from datetime import datetime 

class MYMaster(unittest.TestCase): 

    def Test_login(self): 

<<<<< MY CODE >>>>> 

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

Если я правой кнопкой мыши в PyCharm на линии class MYMaster(unittest.TestCase): и выберите опцию Run «UnitTest в MYMaster» он будет посылать этот код

C:\Users\MyNameIs\AppData\Local\Programs\Python\Python35-32\python.exe"C:\Program Files (x86)\JetBrains\PyCharm 4.5.4\helpers\pycharm\utrunner.py" C:\Users\MyNameIs\PycharmProjects\untitled\MyProject\MyMain.py::MYMaster true 
Testing started at 15:42 ... 

Process finished with exit code 0 
Empty test suite. 

Если я правой кнопкой мыши на def Test_login(self): и выберите опция Запустить «Unittest TestLogin» он отправит этот код (но он запускает весь код и дает результаты).

C:\Users\MyNameIs\AppData\Local\Programs\Python\Python35-32\python.exe "C:\Program Files (x86)\JetBrains\PyCharm 4.5.4\helpers\pycharm\utrunner.py" C:\Users\MyNameIs\PycharmProjects\untitled\MyProject\MyMain.py::MYMaster::Test_login true 
Testing started at 15:50 ... 

Process finished with exit code 0 

Теперь я решил открыть MyMain.py в Python IDLE, где я нажал модуль Run и это результаты:

= RESTART: C:\Users\MyNameIs\PycharmProjects\untitled\MyProject\MyMain.py = 

---------------------------------------------------------------------- 
Ran 0 tests in 0.000s 

OK 

В PyCharm под инструмент> Python интегрированные инструменты тест по умолчанию бегуна = формат UnitTests = ReStructuredText строка документации Проверено флажок Анализировать Python код строки документации

+0

Является ли ваш отступ после вашего утверждения '__main__' каким он является в вашем коде? – BlackVegetable

ответ

0

Когда вы запускаете unittest s в Pycharm, Pycharm предоставляет оболочку, которая выполняет другой код перед вашим кодом.

Чтобы выполнить unittest с от терминала, вы должны использовать эту команду, при условии, что у вас есть python набор в вашем PATH:

python -m unittest /path/to/script_with_tests.py

Вы также должны убедиться, что имена ваших функций начинаются с test , т.е. test_login.

От unittestdocumentation:

TestCase создается подклассов unittest.TestCase. Три отдельных теста определяются методами, имена которых начинаются с проверки букв. Это соглашение об именах информирует тестировщика о том, какие методы представляют тесты.

+0

Да, для Python установлен PATH. Однако я запускаю код в cmd.exe, и он получается с помощью 'C: \ Users \ MyNameIs> python -m unittest C: /Users/MyNameIs/PycharmProjects/untitled/MyProject/MyMain.py -------- -------------------------------------------------- ------------ Ran 0 тестов в 0.000s OK 'Могу ли я удалить этот материал для тестирования. Проект закончен. Я хочу, чтобы он запускался как exe. – PythonMan

+0

. Чтобы' unittest' найти ваш тестовые функции, их имена должны начинаться с 'test'. Измените имя функции на 'test_login'. – DeepSpace

+0

Теперь он выполнит скрипт, но в терминале эта часть кода работает в Pycharm и делает экспорт и в терминале не ... 'mybook = open ('archive' + datetime.now(). Strftime ("% m_ % y ") + '.csv', 'a') mybook.write ('% 20s,% 20s \ n'% (people, datetime.now(). strftime ("% d /% m /% y% H:% M "))) mybook.закрыть() self.driver.quit() если __name__ == '__main__': unittest.main() '' – PythonMan

Смежные вопросы