タグ付けされた質問 「python-unittest」

15
ディレクトリですべてのPython単体テストを実行するにはどうすればよいですか?
私のPythonユニットテストを含むディレクトリがあります。各単体テストモジュールの形式はtest _ *。pyです。私はall_test.pyというファイルを作成しようとしています。これは、ご想像のとおり、前述のテストフォームのすべてのファイルを実行して結果を返します。これまでに2つの方法を試しました。どちらも失敗しました。2つの方法を紹介します。実際にこれを正しく行う方法を誰かが知っていることを願っています。 私の最初の勇敢な試みのために、「ファイル内のすべてのテストモジュールをインポートして、このunittest.main()doodadを呼び出すだけで機能しますよね?」まあ、私は間違っていたことがわかりました。 import glob import unittest testSuite = unittest.TestSuite() test_file_strings = glob.glob('test_*.py') module_strings = [str[0:len(str)-3] for str in test_file_strings] if __name__ == "__main__": unittest.main() これは機能しませんでした、私が得た結果は: $ python all_test.py ---------------------------------------------------------------------- Ran 0 tests in 0.000s OK 私の2回目の試行では、まあ、まあ、多分私はこの「テスト」全体をもっと「手動」のやり方でやろうとするでしょう。だから私はそれを以下にしようとしました: import glob import unittest testSuite = unittest.TestSuite() test_file_strings = glob.glob('test_*.py') module_strings = …

7
コマンドラインを介してunittest.TestCaseから単一のテストを実行する
私たちのチームでは、ほとんどのテストケースを次のように定義しています。 「フレームワーク」クラスourtcfw.py: import unittest class OurTcFw(unittest.TestCase): def setUp: # something # other stuff that we want to use everywhere そしてtestMyCase.pyのような多くのテストケース: import localweather class MyCase(OurTcFw): def testItIsSunny(self): self.assertTrue(localweather.sunny) def testItIsHot(self): self.assertTrue(localweather.temperature > 20) if __name__ == "__main__": unittest.main() 新しいテストコードを作成していて、それを頻繁に実行して時間を節約したい場合は、他のすべてのテストの前に "__"を付けることです。しかし、それは面倒で、私が書いているコードから私をそらし、これが作成するコミットノイズは明らかに迷惑です。 たとえば、に変更を加える場合、testItIsHot()これを実行できるようにしたいと思います。 $ python testMyCase.py testItIsHot そしてunittest走っただけ testItIsHot() どうすればそれを達成できますか? 私はそのif __name__ == …


2
Pythonインポートされたモジュールから関数をモックする
@patchインポートしたモジュールから関数を作成する方法を知りたい。 これが今のところです。 app / mocking.py: from app.my_module import get_user_name def test_method(): return get_user_name() if __name__ == "__main__": print "Starting Program..." test_method() app / my_module / __ init__.py: def get_user_name(): return "Unmocked User" test / mock-test.py: import unittest from app.mocking import test_method def mock_get_user(): return "Mocked This Silly" @patch('app.my_module.get_user_name') class MockingTestTestCase(unittest.TestCase): …

11
AttributeError: 'module'オブジェクトに属性 'tests'がありません
私はこのコマンドを実行しています: python manage.py test project.apps.app1.tests そしてそれはこのエラーを引き起こします: AttributeError: 'module'オブジェクトに属性 'tests'がありません 以下は私のディレクトリ構造です。インストール済みのアプリ構成にapp1も追加しました。 Traceback (most recent call last): File "manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/home/username/local/dev/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line utility.execute() File "/home/username/local/dev/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 377, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/home/username/local/dev/local/lib/python2.7/site-packages/django/core/management/commands/test.py", line 50, in run_from_argv super(Command, self).run_from_argv(argv) File "/home/username/local/dev/local/lib/python2.7/site-packages/django/core/management/base.py", line 288, in run_from_argv …


2
単体テストでJSONを使用してリクエストを送信する方法
リクエストでJSONを使用するFlaskアプリケーション内にコードがあり、次のようにJSONオブジェクトを取得できます。 Request = request.get_json() これは問題なく動作していますが、Pythonのユニットテストモジュールを使用してユニットテストを作成しようとしており、リクエストでJSONを送信する方法を見つけるのが困難です。 response=self.app.post('/test_function', data=json.dumps(dict(foo = 'bar'))) これは私に与えます: >>> request.get_data() '{"foo": "bar"}' >>> request.get_json() None Flaskには、JSON引数があり、投稿リクエスト内でjson = dict(foo = 'bar')を設定できるようですが、unittestモジュールでそれを行う方法がわかりません。


1
Pythonはreturn_valueの代わりにMagicMockオブジェクトを返します
a.py2つのクラスAとを含むPythonファイルがありますB。 class A(object): def method_a(self): return "Class A method a" class B(object): def method_b(self): a = A() print a.method_a() をあざけることmethod_bでクラスでユニットテストをしたいと思います。この目的のためのファイルの内容は次のとおりです。BAtesta.py import unittest import mock import a class TestB(unittest.TestCase): @mock.patch('a.A') def test_method_b(self, mock_a): mock_a.method_a.return_value = 'Mocked A' b = a.B() b.method_b() if __name__ == '__main__': unittest.main() 私Mocked Aは出力を取得することを期待しています。しかし、私が得るものは次のとおりです。 <MagicMock name='A().method_a()' id='4326621392'> …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.