PYCharm 3.0.1に問題があります。基本的な単体テストを実行できません。
これが私のコードです:
import unittest from MysqlServer import MysqlServer
class MysqlServerTest(unittest.TestCase):
def setUp(self):
self.mysqlServer = MysqlServer("ip", "username", "password", "db", port)
def test_canConnect(self):
self.mysqlServer.connect()
self.fail()
if __name__ == '__main__':
unittest.main()
ここにpycharmが私に与えるすべてのものがあります
テストフレームワークにテストレポーターをアタッチできない、またはテストフレームワークが予期せず終了する
また言います
AttributeError: class TestLoader has no attribute '__init__'
そしてイベントログ:
2:14:28 PM Empty test suite
問題は、手動でpythonファイル(スクリプトとしてpycharmを使用)を実行するとき)です。
----------------------------------------------------------------------
Ran 1 tests in 0.019s
FAILED (failures=1)
どちらが普通かはわざとテストを失敗させます。私はここで何が起こっているかについて少し無知です:設定-> Python統合ツール->パッケージ要件ファイル:/ src/testデフォルトのテストランナー:Unittests pyunit 1.4.1がインストールされています
何か助けてくれてありがとう。
編集:unitests.pyの基本的な使用法でも同じことが起こります
import unittest
class IntegerArithmenticTestCase(unittest.TestCase):
def testAdd(self): ## test method names begin 'test*'
self.assertEquals((1 + 2), 3)
self.assertEquals(0 + 1, 1)
def testMultiply(self):
self.assertEquals((0 * 10), 0)
self.assertEquals((5 * 8), 40)
if __name__ == '__main__':
unittest.main()
これはおそらく、設定ダイアログでテストフレームワークを正しく設定しなかったためです。
これは元のポスターには当てはまりませんでしたが、これを引き起こすもう1つの原因は、Wordの「テスト」で始まらないテスト関数であることです。
class TestSet(unittest.TestCase):
def test_will_work(self):
pass
def will_not_work(self):
pass
間違いなくpycharmのこと、上から繰り返す、
まったく同じ問題があります。個々のテストを認識するという事実はファイル名に関連していることがわかりました。私の場合、PyCharmがtest_calculate_kpi.py
に名前を変更したときにテストとして認識しなかったtest_calculate_kpis.py
がすぐに認識されました。
def test_run1()
テストレポートパッケージのドキュメントから広く使用されているサンプルコードは
import unittest
import HtmlTestRunner
class TestGoodnessOfFitTests(unittest.TestCase):
def test_run1(self):
...
if __name__ == '__main__':
unittest.main(testRunner=HtmlTestRunner.HTMLTestRunner(output='t.html'))
このコードは通常、すべてのユニットテストと「メイン」キャッチャーコードを含むテストクラスファイルにあります。このコードにより、警告Empty test suite
が継続的に発生しました。したがって、すべてのif __name__ ...コードを削除です。これで、ファイルにはTestGoodnessOfFitTests
クラスのみが含まれます。さて、さらに
新しいmain.pyを作成テストクラスファイルと同じディレクトリにあり、次のコードを使用します。
import unittest
import HtmlTestRunner
test_class = TestGoodnessOfFitTests()
unittest.main(module=test_class,
testRunner=HtmlTestRunner.HTMLTestRunner(output='t.html'))
古い実行構成を削除、main.pyを右クリックしてRun 'main'
を押します。 Preferences -> Python Integrated Tools -> Default test runner
で正しい設定を確認します(私の場合はpy.testとnoseが機能しました)
出力:
Running tests...
----------------------------------------------------------------------
test_gaussian_dummy_kolmogorov_cdf_1 (tests.evaluation_tests.TestGoodnessOfFitTests) ... OK (1.033877)s
----------------------------------------------------------------------
Ran 1 test in 0:00:01
OK
Generating HTML reports...
私も同じ問題を抱えていました。ファイルの名前はtest_exercise_detectors.py
(複数の「検出器」に注意)で、test_exercise_detectors
という名前のパックに収められていました。ファイルの名前をtest_exercise_detector.py
(単一の「検出器」)に変更すると、問題が修正されました。
私も同じ問題を抱えていましたが、ワークスペースが適切に更新されていないと感じました。私もファイル->同期(Ctrl + Aly + y)をしました。しかし、それは解決策ではありませんでした。私はテストの名前を変更しただけですpythonファイル名ともう一度コードを実行してみましたが、うまくいきました。