- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以下是使用 testng
框架创建的示例测试用例,
public class MyTest {
@BeforeMethod
public void beforeMethod() {
}
@Test
public void test1() {
}
@Test
public void test2() {
}
@AfterMethod
public void afterMethod() {
}
}
我正在获取以下 testng-results.xml
文件,
<?xml version="1.0" encoding="UTF-8"?>
<testng-results skipped="0" failed="0" total="2" passed="2">
<reporter-output>
</reporter-output>
<suite name="Surefire suite" duration-ms="15" started-at="2018-01-22T11:17:46Z" finished-at="2018-01-22T11:17:46Z">
<groups>
</groups>
<test name="Surefire test" duration-ms="15" started-at="2018-01-22T11:17:46Z" finished-at="2018-01-22T11:17:46Z">
<class name="com.my.test.MyTest">
<test-method status="PASS" signature="beforeMethod()[pri:0, instance:com.my.test.MyTest@3567135c]" name="beforeMethod" is-config="true" duration-ms="4" started-at="2018-01-22T16:47:46Z" finished-at="2018-01-22T16:47:46Z">
<reporter-output>
</reporter-output>
</test-method> <!-- beforeMethod -->
<test-method status="PASS" signature="test1()[pri:0, instance:com.my.test.MyTest@3567135c]" name="test1" duration-ms="0" started-at="2018-01-22T16:47:46Z" finished-at="2018-01-22T16:47:46Z">
<reporter-output>
</reporter-output>
</test-method> <!-- test1 -->
<test-method status="PASS" signature="afterMethod()[pri:0, instance:com.my.test.MyTest@3567135c]" name="afterMethod" is-config="true" duration-ms="1" started-at="2018-01-22T16:47:46Z" finished-at="2018-01-22T16:47:46Z">
<reporter-output>
</reporter-output>
</test-method> <!-- afterMethod -->
<test-method status="PASS" signature="test2()[pri:0, instance:com.my.test.MyTest@3567135c]" name="test2" duration-ms="0" started-at="2018-01-22T16:47:46Z" finished-at="2018-01-22T16:47:46Z">
<reporter-output>
</reporter-output>
</test-method> <!-- test2 -->
<test-method status="PASS" signature="beforeMethod()[pri:0, instance:com.my.test.MyTest@3567135c]" name="beforeMethod" is-config="true" duration-ms="0" started-at="2018-01-22T16:47:46Z" finished-at="2018-01-22T16:47:46Z">
<reporter-output>
</reporter-output>
</test-method> <!-- beforeMethod -->
<test-method status="PASS" signature="afterMethod()[pri:0, instance:com.my.test.MyTest@3567135c]" name="afterMethod" is-config="true" duration-ms="0" started-at="2018-01-22T16:47:46Z" finished-at="2018-01-22T16:47:46Z">
<reporter-output>
</reporter-output>
</test-method> <!-- afterMethod -->
</class> <!--com.my.test.MyTest -->
</test> <!-- Surefire test -->
</suite> <!-- Surefire suite -->
</testng-results>
请注意,afterMethod
和 beforeMethod
也被视为测试方法。我想忽略 testng-result.xml 中的这些方法,因为我正在使用此 XML 进行进一步处理。
我有以下问题,
@BeforeMethod
和 @AfterMethod
方法? beforeMethod_Ignore()
和 afterMethod_Ignore()
但这将是一种黑客而不是解决方案)<我已经浏览了以下链接,但尚未找到任何内容,
最佳答案
据我所知,没有直接的方法可以从 testng-results.xml
文件中排除配置方法。
但总而言之,testng-results.xml 中的当前条目仍然可以让您区分配置方法和测试方法。
对于配置方法,有一个名为 is-config="true"
的额外属性。
请参阅下面的您自己的 xml 文件的摘录
<test-method
status="PASS"
signature="beforeMethod()[pri:0, instance:com.my.test.MyTest@3567135c]"
name="beforeMethod"
is-config="true"
duration-ms="4"
started-at="2018-01-22T16:47:46Z"
finished-at="2018-01-22T16:47:46Z">
<reporter-output>
</reporter-output>
</test-method> <!-- beforeMethod -->
但是对于常规的@Test
方法,属性is-config=true
将不可用。
见下文:
<test-method
status="PASS"
signature="test1()[pri:0, instance:com.my.test.MyTest@3567135c]"
name="test1"
duration-ms="0"
started-at="2018-01-22T16:47:46Z"
finished-at="2018-01-22T16:47:46Z">
<reporter-output>
</reporter-output>
</test-method> <!-- test1 -->
这对您的下游 xml 处理没有帮助吗?
如果这仍然不适合您,那么其他替代方案包括:
org.testng.IReporter
实现,其中构造此 xml,然后将其作为监听器连接。org.testng.reporters
的包,其中将 org.testng.reporters.XMLReporter
类的内容复制到此包中,更改方法 org.testng.reporters.XMLSuiteResultWriter#getTestResultAttributes
如果该方法不是 @Test
方法,则向该方法添加额外的属性。关于java - 如何从testng结果中忽略@BeforeMethod和@AfterMethod?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48380756/
我的测试类中有很多测试方法。我的目标是能够使用断言两次:第一次在每个测试中,第二次在每个 AfterMethod 测试中。 这是我的代码示例: @AfterMethod(alwaysRun = tr
以下是使用 testng 框架创建的示例测试用例, public class MyTest { @BeforeMethod public void beforeMethod() {
我是 selenium webdriver 的新手。我尝试在两个浏览器上运行 Testng 测试并行,但我遇到了以下错误。当尝试运行时。 package rough; import org.testn
我们正在使用 TestNG 在 java 中运行自动化测试,但同时,我们试图跟踪某些测试的运行时间以及结果。这是因为我们遇到这样的情况:TestSuite B 决定 TestSuite A 的结果。为
我正在尝试编写一个 TestNG @AfterMethod 函数,该函数本质上模仿“失败时的屏幕截图”。除了它使用 HTMLUnit 并使用 getContent() 收集 XML。 因此,这个“测试
是否可以按特定顺序调用@AfterMethod 方法?我有一个示例代码: public class PriorityTest { @BeforeClass(alwaysRun = true) publ
我有 2 个方法要在 TestNg 框架中运行,但我的代码只执行 @Test 而 @AfterMethod 不执行。 请查找结果输出。正如您所看到的,只有 AdminLogin 方法运行,Closeb
我无法在 junit 中使用 @AfterMethod,因为它属于 testng。在 junit 中是否有 @AfterMethod 的替代方案。 最佳答案 JUnit 4 使用@Before和 @A
简单的问题 - 我的 TestNG 测试类中有这样的 AfterMethod @AfterMethod public void tearDown() throws Exception { us
如果测试失败,我想截图。我不想用 try/catch block 包装所有测试方法,而是想将此逻辑添加到用 @AfterMethod 注释的方法中。 如何在用@AfterMethod注解的方法中检测当
在 TestNG 的 @afterMethod 中,我想捕获堆栈跟踪并将其包含在范围报告中,但是,我找不到好的解决方案。我意识到打印堆栈跟踪有大量线程,但没有一个线程能满足我的需求。我想要导致失败的方
在我的项目中,我有 Maven 和 TestNG 工具。我正在尝试将屏幕截图添加到 Allure 报告中。如果我直接从测试中调用带有“@Attachment”注释的方法,则一切正常。 但是如果我在“@
我有一组测试如下。 @Test public void testX(){ } @Test public void testY(){ } @Test public void testZ(){ } 我还有
好吧,我有点困惑。 public class GroupDemo { @Test() public void test1() { System.out.println("t
我正在尝试检测 @AfterMethod 中跳过的测试以进行报告。 我可以捕获失败或通过的测试,但当跳过测试时它似乎不会输入。 我的测试: @Test public void method1 () {
我有这个示例代码: public class A { @BeforeTest(groups = "group1") public void beforeTest() { System.out.
我想在每次测试后检查一些外部日志文件,如果在执行过程中出现任何错误。在 AfterMethod 中抛出异常是行不通的,因为 TestNG 的处理方式不同:它只会让配置方法失败,而不是前面的测试。 我的
对于我正在进行的研究,我需要在运行测试方法 (@Test) 后从 @AfterMethod 捕获结果状态(通过/失败)。 我一直在使用import org.testng.ITestResult;作为我
我在玩 TestNG,发现当我使用 dataProvider 时,@AfterMethod 和 @BeforeMethod 被调用了不止一次。是否可以在使用从 dataProvider 传递的所有参数
我使用的是allure V1.4.8 +TestNG。看起来 TestNG 适配器错误地将 @AfterMethod 放置在报告中 - 基本上它将 AfterMethod 从测试用例放入下一个测试用例
我是一名优秀的程序员,十分优秀!