テストローダーにとって便利な音です。
あなたはおそらく、あなたのテストの命名規則に基づいてスイートを作成することができ、いくつかの適切な命名規則を提供する場合http://docs.python.org/library/unittest.html#unittest.TestLoader.loadTestsFromName
をチェックしてください。
AIX、Linux(すべて)および32ビットWindowsで実行されるテストA、Windows 64、Linux 64およびSolarisで実行されるテストB、HPUXおよびテストD以外のすべてで実行されるテストCがある場合それはすべての上で実行されます...可能な命名規則はこれには何がありますか?
class TestA_AIX_Linux2_Win32(unittest.TestCase):
class TestB_Win64_Linux64_Solaris(unittest.TestCase):
class TestC_AIX_Linux2_Win32_Win64_Linux64_Solaris(unittest.TestCase):
class TestD_All(unittest.TestCase):
ハード部分は「HP/UXではない」です。負の論理を避ければ、あなたの人生はよりシンプルになります。この場合、HP/UX以外のすべてのOSを一覧表示するだけです。リストはかなり短く、ゆっくりと成長します。
「すべて」テストは、現在のプラットフォームのテストリストに統合された完全なスイートを作成する単なるテキスト検索です。
あなたはあなたのテキストマッチングルールは通常"_someOSName"
ある
class TextC_XHPUX(unittest.TestCase):
ような何かを試みることができます。あなたの例外は、"_X"
という名前で混乱する奇妙なテキストフィルタになります。
"新しいOSを追加するとどうなるでしょうか?すべてのテストの名前を明示的に含める必要がありますか?"はい。新しいオペレーティングシステム市場は進化が遅いですが、管理するのはそれほど苦労しません。
代わりに、各クラス(すなわち、クラスレベルの関数)またはデコレータ内に情報を含め、クラスレベルの関数を評価するカスタマイズされたクラスローダーを使用することができます。私たちは、プラットフォームモジュールなどを使用して、デコレータで行くことに決めました
import sys
import unittest
if 'win' in sys.platform:
class TestIt(unittest.TestCase):
...
if 'linux' in sys.platform:
class TestIt(unittest.TestCase):
...
SkipTestも非常に便利です - スキップしないオプションが付いています。 – Almad