Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I run classes with TestNG by name and wildcard?

Tags:

java

testng

I have a bunch of classes with TestNG tests in them, and I have a handy naming convention. I'd like to make test suites that just run all the classes that start with Xyz. Is there any way of doing that? The way I wish it would work is with a wildcard like this:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="MySuite" parallel="tests" thread-count="10" preserve-order="false">
<parameter name="sauceOs" value="win7" />
    <test name="testName">
        <classes>
            <class name="packageName.BeginningOfClassName*"></package>
        </classes>
    </test>
</suite>
like image 753
item5 Avatar asked Dec 20 '25 13:12

item5


1 Answers

You can use BeanShell.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="MySuite" parallel="tests" thread-count="10" preserve-order="false">
<parameter name="sauceOs" value="win7" />
    <test name="testName">
         <method-selectors>
             <method-selector>
               <script language="beanshell"><![CDATA[
                 method.getDeclaringClass().getSimpleName().startsWith("ClassNamePrefix")
               ]]></script>
             </method-selector>
        </method-selectors>
        <packages>
            <package name="packageName"></package>
        </packages>
    </test>
</suite>
like image 117
user861594 Avatar answered Dec 23 '25 03:12

user861594