TestNG Groups: Can we include two group names and create one group to run tests?
java, selenium, selenium-rc, selenium-webdriver, testng
Solution
You can actually do this "semi off the shelf": http://testng.org/doc/documentation-main.html#beanshell
In your particular case, it would be something like this:
<method-selectors>
<method-selector>
<script language="beanshell"><![CDATA[
return groups.containsKey("tsg1.0") && groups.containsKey("smoke");
]]></script>
</method-selector>
</method-selectors>
Just answered a similar question in more detail here: Is it possible to put a condition to TestNG to run the test if that is member of two groups?
Problem
I have following testng test methods. ``` @Test(groups = {"tsg1.0","smoke"}) public void testLoginWithInvalidCredentials(String usernameValue, String passwordValue){ /*Print something*/ } @Test(groups = {"tsg1.0"}) public void testLoginWithUserIdOnly(String username) { /*Print something*/ } @Test(groups = {"tsg1.0"}) public void testLoginWithPasswordOnly(String password) { /*Print something*/ } ``` Here is the testng xml used to test the above methods. ``` <suite name="Suite" thread-count="1" verbose="10"> <test name="Test"> <groups> <run> <include name="tsg1.0"/> </run> </groups> <packages> <package name="<test package name>"/> </packages> </test> </suite> ``` Is there a way where in I can create one xml which will include tests with Groups "TSG1.0" AND "SMOKE". I want only the first test(testLoginWithInvalidCredentials) to be run in this case. Please help. Thanks, Mike. PS: The following won't work as It will include tsg1.0 or smoke. I want an and condition here... ``` <run> <include name="tsg1.0"/> <include name="smoke"/> </run> ```