我有两个班级
public class xyzTest {
@Test
public void TestP1TUNG557(){
TestHelper.excuteTestcase(TUNG557);
Assert.assertTrue(TestHelper.TestResult);
}
@Test
public void TestP1TUNG559(){
TestHelper.excuteTestcase(TUNG559);
Assert.assertTrue(TestHelper.TestResult);
}
@Test
public void TestP0TUNG558(){
TestHelper.excuteTestcase(TUNG558);
Assert.assertTrue(TestHelper.TestResult);
}
}
public class TestHelper {
public excuteTestcase(String abc)
{
process(abc)
}
int TotalTescase(String pattern, Class testNGclass)
{
How to write here..? plz help
}
}
假设如果调用了TotalTescase(String TestPO,Class xyzTest),它应该返回1,如果调用了TotalTescase(String TestP1,Class xyzTest),它应该返回2。 如果这可以获得这样的总测试用例,请帮助我或给我一些链接 我搜索过但我找不到。帮助我
答案 0 :(得分:3)
您可以使用反射技术找出所提供类中的匹配方法,如:
public int TotalTescase(String pattern, Class<?> testNGclass) throws ClassNotFoundException
{
int count = 0;
testNGclass.getClass();
Class<?> className = Class.forName(testNGclass.getName());
Method[] methods = className.getMethods();
for(int i=0; i<methods.length; i++)
{
String methodName = methods[i].getName();
System.out.println("Method Name: "+methodName);
if(methodName.contains(pattern))
{
count++;
}
}
return count;
}
答案 1 :(得分:0)
在试运行中尝试实现 IInvokedMethodListener 并覆盖 beforeInvocation 方法
public class Test implements IInvokedMethodListener
{
static int testcount=0;
public void beforeInvocation(IInvokedMethod method, ITestResult testResult) {
testcount=testcount+method.getTestMethod().getInvocationCount();
}
@Override
public void onStart(ISuite suite) {
// TODO Auto-generated method stub
}
@Override
public void onFinish(ISuite suite) {
System.out.println(testcount);
}
}