标签: testng

如何获取在testng拆卸方法中运行的测试方法的名称?

基本上,我有一个拆解方法,我想要登录到刚刚运行测试的控制台.如何获得该字符串?

我可以获取类名,但我想要刚刚执行的实际方法.

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应该具有的魔力.

java testng unit-testing

30
推荐指数
3
解决办法
4万
查看次数

测试对基类的@BeforeTest只在每个夹具上发生一次

我正在尝试使用@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"仅打印一次,而不是两次.我究竟做错了什么?

java testng unit-testing

30
推荐指数
1
解决办法
4万
查看次数

如何从selenium中的文本框输入文本

我在TextBox或Combobox中输入一个值,并希望检索刚刚输入的值.我看到Selenium Weblement方法'getText()'没有检索值,似乎输入的文本没有被推入DOM.

任何方案?

grid junit testng selenium webdriver

29
推荐指数
1
解决办法
8万
查看次数

如何从maven传递java代码参数进行测试

我需要传递以下价值观......

exeEvironment (测试环境), testGroup(testNG中的组)

从命令行 - > POM - > TestNG - >测试用例.

基于这两个帖子......

从maven传递一个java参数

如何从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)

testng command-line surefire pom.xml maven

28
推荐指数
2
解决办法
8万
查看次数

混合Hamcrest和TestNG

有没有人将Hamcrest与TestNG集成在一起,以便它的匹配器可以很容易地用于TestNG断言?

java testng hamcrest

26
推荐指数
1
解决办法
1万
查看次数

我可以通过maven运行特定的testng测试组吗?

我有几个testng测试组,例如group1,group2,group3 ......这些在我的pom.xml中定义,并且当我执行"mvn test"时都会运行.我需要运行什么来只执行一个组而不必修改pom.xml中配置的组.

即mvn test group2 mvn test group1 mvn test group3

testng maven

26
推荐指数
2
解决办法
2万
查看次数

java.lang.IllegalStateException:前面的方法调用getMessage("title")缺少行为定义

我正在使用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)

java testng unit-testing easymock

26
推荐指数
2
解决办法
6万
查看次数

TestNG ERROR在类路径中找不到类

我正在尝试通过命令行运行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它,它解决了这个问题.但这次它似乎没有解决它.任何解决方法?提前致谢.

java testng classpath

26
推荐指数
5
解决办法
19万
查看次数

TestNG依赖来自不同类的OnMethods

当要依赖的测试与具有此注释的测试的类相同时,注释的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 testing junit testng automated-tests

26
推荐指数
1
解决办法
2万
查看次数

如何从命令行运行TestNG

我究竟如何从命令行运行.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.有谁知道如何使这个工作?

java testng command-line command-prompt

26
推荐指数
4
解决办法
10万
查看次数