Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium 您能否在同一个测试/框架中混合使用TestNG和JUnit断言?_Selenium_Selenium Webdriver_Junit_Testng - Fatal编程技术网

Selenium 您能否在同一个测试/框架中混合使用TestNG和JUnit断言?

Selenium 您能否在同一个测试/框架中混合使用TestNG和JUnit断言?,selenium,selenium-webdriver,junit,testng,Selenium,Selenium Webdriver,Junit,Testng,您能否在同一个测试/框架中混合使用TestNG和JUnit断言 例如,假设我已经开发了一个框架,是否可能有以下内容: 使用JUNit断言的TestNG类 同时使用Junit和TestNG断言的TestNG 感谢您的帮助我认为简短的答案是否定的。如果您注意到在使用@test注释将方法标记为测试时,系统会提示您导入哪个框架。断言也是如此。想想看,如果提示使用Junit断言,Testng测试将无法“记录”结果。因此,当使用Testng@test注释编写测试时;断言自动默认为Testng断言 在OP

您能否在同一个测试/框架中混合使用TestNG和JUnit断言

例如,假设我已经开发了一个框架,是否可能有以下内容:

  • 使用JUNit断言的TestNG类
  • 同时使用Junit和TestNG断言的TestNG

感谢您的帮助

我认为简短的答案是否定的。如果您注意到在使用@test注释将方法标记为测试时,系统会提示您导入哪个框架。断言也是如此。想想看,如果提示使用Junit断言,Testng测试将无法“记录”结果。因此,当使用Testng@test注释编写测试时;断言自动默认为Testng断言

在OP的评论之后更新:

Gbru检查\projectFolder\test output\junitreports 您正在查找的xml可能已经存在

摘自:

6.2.3-JUnitReports

TestNG包含一个侦听器,该侦听器获取TestNG结果并输出一个XML文件,然后将该文件提供给JUnitReport。下面是一个示例,以及创建此报告的ant任务:

<target name="reports">
  <junitreport todir="test-report">
    <fileset dir="test-output">
      <include name="*/*.xml"/>
    </fileset>

    <report format="noframes"  todir="test-report"/>
  </junitreport>
</target>


答案是
。您可以一次使用TestNG或JUnit。您不能同时集成这两个框架。

请记住这两个框架的本质是:它们执行测试用例

当然,您可以在代码中添加任何注释。但关键是:这些注释本身并不意味着什么。它们只是类/方法定义上的标记

它是底层的框架,在运行时检查它们的存在,并在找到这个或那个注释时执行“操作”

意思:为了JUnit resp。TestNG注释以在运行时产生所需的效果。。。您必须在JUnit或TestNG框架内运行测试。但是,您不能在同一JVM中,在同一源代码上并行运行这两个框架

换句话说:如果需要这样做,那么您必须将您的测试用例分离到不同的存储桶中:一个用于JUnit测试;一个用于TestNG测试。但是忘了在较低层次上混合东西吧

即使在技术上可以在一个JVM中“同时”运行两个框架,您仍然希望这样做。仅仅是因为这些框架不是为支持这一需求而设计的;因为没有其他人这样做;因此,你命中各种明显和微妙错误的几率太高了


但我必须承认:我误解了这个问题。如果只是为了处理这些断言,那么我同意格拉斯霍普对这个答案的评论;我看不出有什么难以解释的技术原因不起作用。

您可以在测试中使用任何您想要的断言库:TestNG、JUnit、AssertJ、Hamcrest等等


也可以使用TestNG运行JUnit测试,因为如果配置得当,TestNG支持JUnit。

一点问题都没有,感谢您及时投票给我的答案。顺便问一下,Gbru,您想要实现什么,您有一个现有的JUnit框架并试图迁移到TestNG或其他什么?好奇的是,也许有一种解决方法:)我开发了一个TestNG frameowork,它在MS TFS中运行,我发现TFS中只有一个JUNIT选项可以读取xml文件,它似乎可以很好地读取大部分数据,但当它达到TestNG断言失败时,它无法读取报告:/i明白了,这些是测试结果吗?因为如果是的话,你很幸运,Testng在每次运行后都会自动生成一个xml文件。yeah@xris Stoixeia这些是测试结果,目前我正在阅读surefire JUnit.xmls,但我认为Testng需要JUnit,xml包含Testng sytnax的地方有抛出错误:/i同意答案;但我发现这种解释完全是错误的:IDE给您的建议只是一个建议。假设你的类路径设置是正确的,导入不同的注释并应用它们应该不会有直接的障碍。更好的解释。。。如果我错了,请纠正我,当断言失败时,junit和testng断言都会抛出java.lang.AssertionError。因此,无论您使用哪个框架来运行测试,它都应该独立于您使用的断言。但是像@Before这样的其他注释呢?如果没有正确处理这些问题,那么正确解释相应的失败又有什么帮助呢?有时候自由选择是有价值的,但我认为开发团队应该能够就一个测试框架达成一致。如前所述,如果您真的需要这两种方法,那么将它们组织到两个单独的bucket中。Before、After和其他配置方法都是测试框架的一部分,应该为项目确定。我的问题只是关于断言语句部分。类似于hamcrest matchers如何轻松地与testng和junit框架集成。因此,我不应该在junit运行测试中获得与testng断言相同的行为,或者反之亦然。您可能是正确的。我没有理解你问题的“核心”。更新我的答案;你得到了我对这个有趣想法的投票!我不是刚才评论你答案的OP,我认为被接受的答案是不正确的。这是唯一正确的答案。问题是关于断言。其他答案是关于注释和测试运行者的。