8

一部のデータを他のデータより先に検証する必要があるため、テストの実行順序を設定する必要があります。注文は可能ですか?

class OneTestCase(unittest.TestCase):
    def setUp(self):
        # something to do
    def test_login (self):
        # first test
        pass
    def test_other (self):
        # any order after test_login
    def test_othermore (self):
        # any order after test_login
if __name__ == '__main__':
    unittest.main()
4

2 に答える 2

1

やらないほうがいい。

テストは独立しているべきです。

最善の方法は、コードをテストによって呼び出される関数に入れることです。

そのように:

def assert_can_log_in(self):
    ...

def test_1(self):
    self.assert_can_log_in()
    ...

def test_2(self):
    self.assert_can_log_in()
    ...

または、テスト クラスを分割し、アサーションを setUp 関数に入れることもできます。

class LoggedInTests(unittest.TestCase):
    def setUp(self):
        # test for login or not - your decision

    def test_1(self):
        ...

クラスを分割すると、テストが分割され、テストする必要があるすべてのケースをよりよく理解できるため、より多くのより良いテストを書くことがよくあります。

于 2013-05-03T17:23:10.277 に答える