基本上,我有一个拆解方法,我想要登录到刚刚运行测试的控制台.如何获得该字符串?
我可以获取类名,但我想要刚刚执行的实际方法.
public class TestSomething {
@AfterMethod
public void tearDown() {
System.out.println("The test that just ran was: " + getTestThatJustRanMethodName());
}
@Test
public void testCase() {
assertTrue(1 == 1);
}
}
Run Code Online (Sandbox Code Playgroud)
...应该输出到屏幕:"刚刚运行的测试是:testCase"
但是,我不知道getTestThatJustRanMethodName应该具有的魔力.
我正在尝试使用@BeforeTest来获取代码...在每次测试之前运行一次.
这是我的代码:
public class TestBase {
@BeforeTest
public void before() {
System.out.println("BeforeTest");
}
}
public class TestClass extends TestBase{
@Test
public void test1(){}
@Test
public void test2(){}
}
Run Code Online (Sandbox Code Playgroud)
"BeforeTest"仅打印一次,而不是两次.我究竟做错了什么?
我在TextBox或Combobox中输入一个值,并希望检索刚刚输入的值.我看到Selenium Weblement方法'getText()'没有检索值,似乎输入的文本没有被推入DOM.
任何方案?
我需要传递以下价值观......
exeEvironment (测试环境), testGroup(testNG中的组)
从命令行 - > POM - > TestNG - >测试用例.
基于这两个帖子......
如何从Surefire Maven插件传递参数到guicified TestNG测试?
我做了以下配置..
在surefire插件中,我尝试了两个选项,似乎都没有.
=====
(1)
<execution>
<id>default-test</id>
<goals>
<goal>test</goal>
</goals>
<configuration>
<properties>
<exeEnvironment>${exeEnvironment}</exeEnvironment>
<testGroup>${testGroup}</testGroup>
</properties>
<suiteXmlFiles>
<suiteXmlFile>testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</execution>
Run Code Online (Sandbox Code Playgroud)
(2)
<execution>
<id>default-test</id>
<goals>
<goal>test</goal>
</goals>
<configuration>
<systemPropertyVariables> <exeEnvironment>${exeEnvironment}</exeEnvironment>
<testGroup>${testGroup}</testGroup> </systemPropertyVariables>
<suiteXmlFiles>
<suiteXmlFile>testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</execution>
Run Code Online (Sandbox Code Playgroud)
在testNG.xml中,我可以使用testGroup像...这样的变量吗?
<test name="Web Build Acceptance">
<groups>
<run>
<include name="${testGroup} />
</run>
</groups>
<classes>
<class name="com.abc.pqr" />
</classes>
</test> …Run Code Online (Sandbox Code Playgroud) 有没有人将Hamcrest与TestNG集成在一起,以便它的匹配器可以很容易地用于TestNG断言?
我有几个testng测试组,例如group1,group2,group3 ......这些在我的pom.xml中定义,并且当我执行"mvn test"时都会运行.我需要运行什么来只执行一个组而不必修改pom.xml中配置的组.
即mvn test group2 mvn test group1 mvn test group3
我正在使用EasyMock(版本2.4)和TestNG来编写UnitTest.
我有一个以下场景,我不能改变定义类层次结构的方式.
我正在测试扩展ClassA的ClassB.
ClassB看起来像这样
public class ClassB extends ClassA {
public ClassB()
{
super("title");
}
@Override
public String getDisplayName()
{
return ClientMessages.getMessages("ClassB.title");
}
}
Run Code Online (Sandbox Code Playgroud)
ClassA代码
public abstract class ClassA {
private String title;
public ClassA(String title)
{
this.title = ClientMessages.getMessages(title);
}
public String getDisplayName()
{
return this.title;
}
}
Run Code Online (Sandbox Code Playgroud)
ClientMessages类代码
public class ClientMessages {
private static MessageResourse messageResourse;
public ClientMessages(MessageResourse messageResourse)
{
this.messageResourse = messageResourse;
}
public static String getMessages(String code)
{
return messageResourse.getMessage(code);
}
}
Run Code Online (Sandbox Code Playgroud)
MessageResourse类代码
public class MessageResourse …Run Code Online (Sandbox Code Playgroud) 我正在尝试通过命令行运行testng,我在classpath中有以下内容:
testng jar,jar编译的测试用例文件和其他必需的jar.testng.xml 指向层次结构中的适当类. Testng不运行而是抛出:
[TestNG] [ERROR] Cannot find class in classpath: (name of testcase file)
Run Code Online (Sandbox Code Playgroud)
我之前遇到过同样的问题而且我刚才补充道.
在classpath它,它解决了这个问题.但这次它似乎没有解决它.任何解决方法?提前致谢.
当要依赖的测试与具有此注释的测试的类相同时,注释的dependsOnMethods属性@Test可以正常工作.但是,如果待测试方法和依赖方法属于不同的类,则它不起作用.示例如下:
class c1 {
@Test
public void verifyConfig() {
//verify some test config parameters
}
}
class c2 {
@Test(dependsOnMethods={"c1.verifyConfig"})
public void dotest() {
//Actual test
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法解决这个限制?一个简单的方法是在class c2该调用中创建一个测试c1.verifyConfig().但这将是太多的重复.
我究竟如何从命令行运行.java TestNG项目?
我已经阅读了TestNG文档,并尝试以下内容无济于事:
C:\projectfred> java org.testng.TestNG testng.xml
Run Code Online (Sandbox Code Playgroud)
...在我的项目中使用以下testng.xml文件:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="SuiteAll" verbose="1">
<test name="TestAll">
<packages>
<package name="com.project.fred.tests"/>
</packages>
</test>
</suite>
Run Code Online (Sandbox Code Playgroud)
我得到的错误是这样的:
Exception in thread "main" java.lang.NoClassDefFoundError: org/testng/TestNG
Caused by: java.lang.ClassNotFoundException: org.testng.TestNG
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: org.testng.TestNG. Program will exit.
Run Code Online (Sandbox Code Playgroud)
显然,我没有在命令行中正确引用TestNG.有谁知道如何使这个工作?