【问题标题】:TestNG shows 0 Test runTestNG 显示 0 测试运行
【发布时间】:2020-05-29 03:42:01
【问题描述】:

我正在尝试使用 testNG 执行我的测试脚本并尝试以下代码,但在控制台中显示 0 反对运行、失败和跳过。因此,我无法验证脚本中的结果。

Java:

package com.demoaut.newtours.testcases;
import org.testng.Assert;
import org.testng.annotations.Test;

//import junit.framework.Assert;
public class TC002_CheckAssert {
    @Test
    public TC002_CheckAssert() {
        System.out.println("ajkcbh");
        try {
            Assert.assertEquals("Pass", "Pass");
        }
        catch(Exception e) {
            System.out.println("Exception:" + e.getLocalizedMessage());
        }
    }
}

我正在通过testng.xml文件执行上面的脚本。

<suite name="Suite">
  <test name="Test">
   <classes>
      <class name="com.demoaut.newtours.testcases.TC002_CheckAssert" />
   </classes>
  </test>
</suite>

控制台结果:

ajkcbh

"==============================================="
Suite
Total tests run: 0, Failures: 0, Skips: 0
"==============================================="

【问题讨论】:

  • 你在用 maven 命令运行吗?
  • 没有。我没有使用 Maven。
  • 您确定您在输出中看到了ajkcbh。这意味着您的测试实际上正在运行。还有一件事,您在哪个 IDE 中运行此测试,如果它是 elcpse,您确定安装了 testng 插件。
  • @Durgesh - 你需要告诉我们你是如何运行这个测试的?它也有一个编译错误。如果没有返回类型,则无法定义方法。所以我不确定你是如何让这个测试类编译的(所以我猜它可能是复制粘贴错误)?您还可以将verbose="3" 添加到您的套件xml 文件中的&lt;suite&gt; 标记中并分享完整的输出吗?
  • 实际上问题是我在构造函数中编写了代码,如果我们在构造函数中使用 Assert 语句,那么它们就不起作用。当我在方法中使用它们时(即通过给出将我的构造函数更改为方法返回类型并更改其名称)然后它就起作用了。

标签: java selenium testng assert


【解决方案1】:

您的代码块中有一个小错误。当您使用TestNG 并在@Test 注解中编写方法时,我们应该使用正确的return types 定义方法。我使用了您自己的代码,并简单地将 return type 添加为 void,如下所示:

import org.testng.Assert;
import org.testng.annotations.Test;

public class Q45191867_Assert_Pass_Suite 
{

    @Test   
    public void TC002_CheckAssert() 
    {
        System.out.println("ajkcbh");
        try
        {
            Assert.assertEquals("Pass", "Pass");
        }
        catch(Exception e)
        {
            System.out.println("Exception:"+e.getLocalizedMessage());
        }
    }
}

TestNG Test执行时,代码块执行成功。

我已经执行了转换为TestNG 的代码块,下面的testng.xml 如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite">
  <test name="Test">
    <classes>
      <class name="demo.Q45191867_Assert_Pass_Suite"/>
    </classes>
  </test> <!-- Test -->
</suite> <!-- Suite -->

我以TestNG Suite 再次执行了这个代码块。在这种情况下,控制台上的输出也是:

[TestNG] Running:
  C:\Users\AtechM_03\LearnAutmation\LearnAutomationTestNG\testng.xml

ajkcbh

===============================================
Suite
Total tests run: 1, Failures: 0, Skips: 0
===============================================

【讨论】:

  • 所以它基本上需要一个断言,对吗?
猜你喜欢
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 2014-02-04
  • 2017-04-23
  • 2017-01-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多