Nehmen Sie die folgenden base class methods testSetup() and getStatusAndAnnotation()
und setzen Sie sie in TestNG Listener. Ich könnte das Äquivalent von @BeforeClass
als onBeforeClass(ITestClass, IMethodInstance)
finden. Wie lautet das Äquivalent für @AfterMethod
?TestNG BeforeClass und AfterMethod äquivalente Methoden für TestNG Listener
Mein Ziel ist es, die ITestResult als Parameter an diese Methode zu übergeben, weil ich das Testergebnis in sie halten wird. Der folgende Code zeigt, dass ich die Anmerkung und den Status des Tests erhalte und ihn dann in die Testrail-Cloud schiebe. Ich habe versucht, mit:
@Override
public void afterInvocation(IInvokedMethod, ITestResult) {
..
}
Es hat nicht geholfen und gab
java.lang.NoSuchMethodException: client.test.reporting.listeners.TestRailListener.test_getVersion()
at java.lang.Class.getMethod(Class.java:1670)
Hier Java: 1670 ist
throw new NoSuchMethodException(getName() + "." + name + argumentTypesToString(parameterTypes));
**@BeforeClass
public static void testSetup() throws InterruptedException, IOException, APIException {
initTestRail();
}
@AfterMethod
public void getStatusAndAnnotation(ITestResult result) throws NoSuchMethodException, IOException, APIException {
HashMap<Object, Object> map = new HashMap<>();
Method m = getClass().getMethod(result.getName());
TestCase annotation = m.getAnnotation(TestCase.class);
try {
map.put("testRailCaseId",annotation.testRailCaseId());
}catch (NullPointerException e){}
if (result.isSuccess()) {
map.put("result", 1);
} else {
map.put("result", 5);
}
if(annotation.testRailDeployEnable() && !map.get("testRailCaseId").equals(null) && !map.get("testRailCaseId").toString().isEmpty())
{
TestRailIntegration.addTestResult(map);
}
else System.out.println("Deploying result was canceled, because test has annotation \"testRailDeployEnable: false\" or \"testRailCaseId\" has no value");
}**
Nach jedem Verfahren ausgeführt wird, was vielleicht der Status (PASS/FAIL/SKIP), ich möchte diesen getStatus ausführen AndAnnotation ...() aber es gibt oben Ausnahme/Fehler.
ich verwendet habe "Method method = result.getMethod() getConstructorOrMethod() getMethod();.." und das hat für mich funktioniert. Vielen Dank! –