2016-06-23 13 views
-1

Ich verstehe wirklich nicht ... Wenn Sie Screenshots einiger Einstellungen benötigen, bitte sagen Sie mir, weil ich wirklich nicht weiß, warum es in PyCharm funktioniert, aber nicht außerhalb PycharmPython-Skript läuft perfekt in PyCharm, aber in Terminal nicht

...
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() 

Wenn ich rechts in PyCharm klicken sie auf Linie class MYMaster(unittest.TestCase): und wählen sie die Option Run 'Unittest in MyMaster' wird es diesen Code senden

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. 

Wenn ich nach rechts auf def Test_login(self): klicken und wählen sie Option Führen Sie 'Unittest TestLogin' es wird diesen Code senden (aber es führt den gesamten Code und geben Ergebnisse).

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 

Jetzt habe ich beschlossen, die MyMain.py in Python IDLE zu öffnen, in dem ich Run Modul angeklickt und dies sind die Ergebnisse:

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

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

OK 

In PyCharm unter Tool> runner Standard Test Python Integrierte Werkzeuge = Unittests Docstring format = reStructuredText Karo Checkbox Analysieren Python-Code in Docstrings

+0

Ist Ihr Einzug nach dem '__main__' Statement, wie es in Ihrem Code ist? – BlackVegetable

Antwort

0

Wenn Sie unittest in Pycharm ausführen, stellt Pycharm einen Wrapper bereit, der anderen Code vor Ihrem Code ausführt.

unittest s vom Terminal auszuführen, Sie diesen Befehl verwenden sollten, sofern Sie python Satz in Ihrem PATH haben:

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

Sie sollten auch sicherstellen, dass die Namen Ihrer Funktionen mit test starten , dh test_login.

Von unittestdocumentation:

ist ein Testfall von Subklassen unittest.TestCase erstellt. Die drei einzelnen Tests werden mit Methoden definiert, deren Namen mit dem Buchstaben test beginnen. Diese Namenskonvention informiert den Testläufer darüber, welche Methoden Tests darstellen.

+0

Ja, PATH ist für Python festgelegt. Allerdings führe ich den Code in cmd.exe und es ergibt sich mit 'C: \ Users \ MyNameIs> python -m Komponentest C: /Users/MyNameIs/PycharmProjects/untitled/MyProject/MyMain.py -------- -------------------------------------------------- ------------ Lief 0 Tests in 0,000s OK 'Kann ich das Testmaterial entfernen Projekt ist fertig Ich möchte es als exe ausführen – PythonMan

+0

Um für' unittest' zu finden Testfunktionen müssen ihre Namen mit "test" beginnen. Ändern Sie den Funktionsnamen in 'test_login'. – DeepSpace

+0

Ok jetzt wird es das Skript ausführen, aber im Terminal funktioniert dieser Teil des Codes in Pycharm und macht Export und im Terminal nicht ... 'mybook = open ('archive' + datetime.now(). Strftime ("% m_ % y ") + '.csv', 'a') mybook.write ('% 20s,% 20s \ n'% (Personen, datetime.now(). strftime ("% d /% m /% y% H:% M "))) mein Buch.(Schließen) self.driver.quit() wenn __name__ == '__main__': unittest.main() '' – PythonMan