我想使用testng在beforethod和AfterMethod中打印当前正在执行的测试方法的名称。例如:
public class LoginTest {
@Test
public void Test01_LoginPage(){
//Some Code here
}
@Test
public void Test02_LoginPage(){
//Some Code Here
}
@BeforeMethod
public void beforeTestCase(){
//Print Test method name which is going to execute.
}
@AfterMethod
public void AfterTestCase(){
//Print Test method name which is executed.
}
}
下面的示例解释了如何在before方法和After方法中获取@test方法的方法名和类名
@Test
public void exampleTest(){
}
@BeforeMethod
public void beforemethod(Method method){
//if you want to get the class name in before method
String classname = getClass().getSimpleName();
//IF you want to get the method name in the before method
String methodName = method.getName()
//this will return you exampleTest
}
@AfterMethod
public void beforemethod(Method method){
//if you want to get the class name in After method
String classname = getClass().getSimpleName();
//IF you want to get the method name in the After method
String methodName = method.getName()
//this will return you exampleTest
}
您可以使用像此链接这样的侦听器。链接中的重要代码:-
//这属于IInvokedMethodListener,将在每个方法之前执行,包括在测试之前/之后执行
public void beforeInvocation(IInvokedMethod arg0, ITestResult arg1) {
String textMsg = "About to begin executing following method : " + returnMethodName(arg0.getTestMethod());
Reporter.log(textMsg, true);
}
// This belongs to IInvokedMethodListener and will execute after every method including @Before @After @Test
public void afterInvocation(IInvokedMethod arg0, ITestResult arg1) {
String textMsg = "Completed executing following method : " + returnMethodName(arg0.getTestMethod());
Reporter.log(textMsg, true);
}
// This will return method names to the calling function
private String returnMethodName(ITestNGMethod method) {
return method.getRealClass().getSimpleName() + "." + method.getMethodName();
}
从文档中:
public class LoginTest {
@Test
public void Test01_LoginPage() {
//Some Code here
}
@Test
public void Test02_LoginPage() {
//Some Code Here
}
@BeforeMethod
public void beforeTestCase(Method m) {
System.out.println(m.getName());
}
@AfterMethod
public void AfterTestCase(Method m) {
System.out.println(m.getName());
}
}
问题内容: 在JUnit 3中,我可以这样获得当前正在运行的测试的名称: 它将显示“当前测试是testSomething”。 在JUnit 4中,有什么现成的或简单的方法可以做到这一点吗? 背景:显然,我不想只打印测试的名称。我要加载存储在与测试名称相同的资源中的特定于测试的数据。您知道,约定优于配置以及所有其他内容。 问题答案: JUnit 4.7似乎使用TestName-Rule添加了此功能。
问题内容: 有没有办法获取Java中当前正在执行的方法的名称? 问题答案: 从技术上讲这将起作用… 但是,将在编译时创建一个新的匿名内部类(例如)。因此,这将为.class每个部署此技巧的方法创建一个文件。另外,在运行时每次调用时都会创建一个其他未使用的对象实例。因此,这可能是可以接受的调试技巧,但确实会带来大量开销。 该技巧的一个优点是返回值可用于检索方法的所有其他信息,包括注释和参数名称。这样
问题内容: 我有调用其他脚本文件的脚本,但是我需要获取该进程中当前正在运行的文件的文件路径。 例如,假设我有三个文件。使用: 来电。 调用。 我怎样才能获得的文件名和路径,从内部代码,而无需从传递这些信息作为参数? (执行将返回原始启动脚本的文件路径,而不是当前文件的路径。) 问题答案: p1.py: p2.py:
我正试图为Facebook通知创建绑定。aar库。 然而,我得到了编译错误: 严重性代码说明项目文件行抑制状态错误CS0103名称'CreateAsset'在当前上下文中不存在FBNotificationsC:\users\Jakub\Documents\Visual studio 2015\Projects\FBNotifications\FBNotifications\OBJ\Release\
问题内容: 我正在尝试获取当前正在运行的Python脚本的名称。 我有一个名为的脚本,我想做这样的事情以获得脚本名称: 问题答案: 您可以使用获取当前文件的名称。在主模块中使用时,这是最初调用的脚本的名称。 如果要省略目录部分(可能存在),可以使用。
问题内容: 有没有办法在运行时获取当前包的名称? …且结果应为“主要” 现在我正在使用常量,例如: 但我很好奇您能否避免这种情况 问题答案: 没有提供所需功能的运行时或反射方法或函数。 我能找到的最接近的东西是: 这将输出: 您还可以读取文件的第一行并删除“ package”子字符串。(不确定这是最好的主意)