私はテストに不慣れで、やりたいです
1)ログインをテストします
2)フォルダを作成します
3)フォルダにコンテンツ(ページ)を追加します
私はそれぞれのテストを作成し、それらは機能しますが、明らかにお互いの上に構築したいと思います。たとえば、3を実行するには、1を実行してから2を実行する必要があります。2を実行するには、1を実行する必要があります。私の基本的なテスト構造:
class TestSelenium(unittest.TestCase):
def setUp(self):
# Create a new instance of the Firefox driver
self.driver = webdriver.Firefox()
def testLogin(self):
print '1'
...
def testFolderCreation(self):
print '2'
...
def testContentCreation(self):
print '3'
...
def tearDown(self):
self.driver.quit()
if __name__ == '__main__':
unittest.main()
最初は、テストが順番に実行され、最初の関数が中断したところから2番目の関数が続行されると思いましたが、そうではないことがわかりました。各テストで最初からやり直しているようです。また、逆の順序で実行されることにも気づきました。ターミナルで3,2,1の出力が得られます。どうすれば私が望むことを達成できますか?必要な関数を実行する前に前の関数を呼び出すと、それぞれがテストであるため、同じことを何度も繰り返しテストしているように感じます(たとえば、ではtestContentCreation
、「testLogin」を呼び出してから呼び出しtestFolderCreation
、 insidecallを実行しtestFolderCreation
ますtestLogin
。私はもっとやることになっていた、testLogin
何度も呼ばれていたでしょう!)。代わりに、前の手順を通常の非テスト関数に変換し、最後の最後の手順(テスト関数)で前の手順を順番に呼び出す必要がありますか?そのようにすると、いずれかの手順が失敗した場合、最後の手順が失敗した場合、1つの大きなテスト関数があると思います。
このタイプのテストをどのように書くべきかについての提案はありますか?また、なぜテストが逆の順序で実行されるのですか?
ありがとう!