我已经开始学习TestNG了,这段代码对我不起作用:
package com.automation;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
public class TestNg_ParameterTestClass {
@Parameters({"Param1","Param2"})
@Test(enabled = true)
public void testTestExample(String p1, String p2){
System.out.println("Parameter's value : " + p1 + ", " + p2);
}
}
testng.xml是空的,因为我直接从IntelliJ运行测试方法,并且每次收到此消息:
Test ignored.
Test ignored.
===============================================
Default Suite
Total tests run: 1, Failures: 0, Skips: 1
===============================================
你知道什么是错的,为什么testNG会跳过它?
感谢您的帮助, 拉法尔
答案 0 :(得分:3)
答案 1 :(得分:3)
这个问题的答案非常简单。
@Parameters({" Param1"," Param2"}),Param1和Param2是testng.xml中参数的名称,这些值不是分配给String的值p1,运行时字符串p2。
必须定义两个XML参数,否则将忽略测试。您可以使用" Optional"定义自动分配给p1和p2的可选值。注释:
@Parameters({"param1","param2"})
@Test(enabled = true)
public void testTestExample(@Optional("test1111") String p1, @Optional("test2222")String p2){
System.out.println("Parameter's value : " + p1 + ", " + p2);
}
答案 2 :(得分:0)
您需要在Testng.xml中定义这两个参数(Param1,Param2),然后只有您可以在测试类中使用它。
您需要正确定义testng.xml才能使用@Parameters
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite">
<test thread-count="5" name="Test">
<parameter name="Param1" value="Value_Of_Param1"/>
<parameter name="Param2" value="Value_Of_Param2"/>
<classes>
<class name="CLASS_NAME"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
检查第5行和第6行,您将获得解决方案。希望它会有所帮助。