2012-11-26 144 views
4

當我使用Test::ClassTest::More來進行系統測試時,似乎並行執行測試用例。然而,我的測試具有它們之間的依賴關係,因此我希望將測試執行成功。我怎樣才能做到這一點?如何讓我的Perl測試按給定順序執行?

回答

3

從模塊測試在底部的注意事項部分的文檔::單位:: TestCase的:

如果需要指定測試順序,您可以執行下列操作之一:

  • Set @TESTS

    我們的@TESTS = qw(my_test my_test_2);

    這是最簡單和推薦的方法。

  • 覆蓋的list_tests()方法

    返回方法名

    的有序列表
  • 提供一套()方法

    返回測試::單位:: TestSuite的。

我個人的2美分: 使用Test::Class代替Test::Unit::TestCase可能是一個更好的選擇。模塊文檔甚至有一個很好的introduction,以及"Confused Junit Users"上的一個有用部分,即使您繼續使用Test :: Unit :: TestCase,也應該閱讀它。

+0

如果他們是Moose用戶,那麼OP可能也想看一下Test :: Routine--這相當不錯。 – adrianh

+1

我很抱歉,我發佈了錯誤的perl測試模塊。是的,我使用Test :: Class和Test :: More這樣的模塊來做我的測試用例。似乎沒有任何信息告訴我如何按順序完成我的測試。問題是我需要一個測試用例的返回值用於下面的測試用例。 – daisy

3

Test::Class以字母順序執行測試。這很煩人,但你可以用一種方式命名你的測試子程序,以便它們按正確的順序執行。你確定他們並行運行嗎?您是否可以在帶有--jobs標誌的多個文件上使用prove

相關問題