Testng XML スイートでテストをグループ化しようとすると、すべてのテスト メソッドがテスト実行で除外されます。
クラス内のすべてのテスト メソッドを実行し、スイート内の特定のクラスのみを実行するようにテストを作成したので、クラス レベルの注釈を使用しました。
@Test (groups={ TestConstrants.Group1})
public class ABCTests extends AbstractIntegrationTest
{
@Test
public void Test1() throws Exception
@Test
public void Test2() throws Exception
}
@Test (groups={ TestConstrants.Group2})
public class DEFTests extends AbstractIntegrationTest
{
@Test
public void Test3() throws Exception
@Test
public void Test4() throws Exception
}
私の Testng XML は、次のように構成されています。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="SuiteGroup">
<test name="TestGroups" preserve-order="true">
<groups>
<run>
<include name="TestConstants.Group1"/>
<exclude name="TestConstants.Group2"/>
</run>
</groups>
<classes>
<class name="ABCTests"/>
<class name="DEFTests"/>
</classes>
</test> <!-- TestGroups -->
</suite> <!-- SuiteGroup -->
この例では、クラス ABCTests のテストのみが実行されることを期待していますが、何らかの理由ですべてのテストが除外されているようです。拡張しているクラス (AbstractIntegrationTest) のメソッドが「alwaysRun = true」に設定されていることを確認しました。
実行したくないクラスを単純に含めることができないことはわかっていますが、何百ものテストが存在する可能性があり、クラスよりもグループごとにテスト スイートを維持する方がはるかに簡単です。