2016-06-23 9 views
-1

私は実際には理解しません...いくつかの設定のスクリーンショットが必要な場合は、Pycharmでは動作しませんがPycharm以外では動作しない理由がわからないので教えてください私は右def Test_login(self):をクリックすると選択した場合は...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() 

私が正しい「MYMasterでのunittestを」行class MYMaster(unittest.TestCase):と選択オプションランにPyCharmでクリックした場合には、このコード

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. 

を送信しますオプション'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 

は今、私は実行モジュールをクリックしたPythonのIDLEでMyMain.pyを開くことを決め、これが結果です:ツールの下Pycharmで

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

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

OK 

> Pythonの統合ツールのデフォルトのテストランナー= ユニットテストドキュメント文字列形式= reStructuredTextのチェックチェックボックスはドキュメンテーション文字列で Pythonコードを分析

+0

あなたのコードにどのように記述されているかを '__main__'ステートメント後にインデントしていますか? – BlackVegetable

答えて

0

Pycharmでunittestを実行すると、Pycharmはコードの前に他のコードを実行するラッパーを提供します。

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

あなたはまた、あなたの関数の名前はtestで始まることを確認してください:

端末からunittest Sを実行するには、このコマンドを使用する必要がありますが、あなたがあなたのPATHpythonセットを持っていることを提供しましたすなわち、test_login

documentationunittestから:

テストケースがたunittest.TestCaseのサブクラスによって作成されます。 3つの個別のテストは、名前がtestという文字で始まるメソッドで定義されています。この命名規則は、テストを表すメソッドについてテストランナーに通知します。

+0

はい、PATHはPython用に設定されています。しかし、私はcmd.exeでコードを実行し、結果は 'C:\ Users \ MyNameIs> python -m unittest C:/Users/MyNameIs/PycharmProjects/untitled/MyProject/MyMain.py -------- -------------------------------------------------- ------------ 0.000sでラン0テスト OK 'テスト用のものを削除できますかプロジェクトが終了しましたexeとして実行したい – PythonMan

+0

' unittest'がそれらの名前は 'test'で始まらなければなりません。関数名を 'test_login'に変更してください。 – DeepSpace

+0

これでスクリプトは実行されますが、この部分のコードはPycharmで動作し、エクスポートされ、端末では実行されません... 'mybook = open( 'archive' + datetime.now()。strftime("%m_ strftime( "%d /%m /%y")+ ".csv"、 "a") mybook.write( '%20s、%20s \ n'%(people、datetime.now() H:%M "))) mybook。近い() self.driver.quit() 場合__name__ == '__main__': unittest.main() ' – PythonMan

関連する問題