2012-07-26 108 views
2

我正在使用TestNG,WebDriver和log4j编写一些测试 我想记录assert nomatter的结果,如果结果为true或false。例如,当我写这个代码:如何记录Assert的真实结果

Assert.assertTrue(condition) 

我想在日志中看到如果这是一个通过或失败。现在,如果结果是FAIL,我只能看到任何日志。 有没有人有关于如何实现这一点的想法?

谢谢

+0

你为什么要这么做?这是一种不寻常的工作流程 - 对于单元测试,测试值通常只在失败时才有意思。 – Tom 2012-07-26 07:19:22

回答

0

你可以覆盖Assert-Class并自己触发记录器。

+0

你的意思是它会通过MyAssert.assertTrue(condition)来记录结果然后调用Assert.asserTrue? – Tom 2012-07-26 07:20:14

+0

是的,我的意思是。如果记录器没有,你也可以使用MyAssert提供额外的记录信息。 – rollstuhlfahrer 2012-07-26 08:03:23

0

没有办法告诉Assert记录一个成功的断言。你可以这样做:

Assert.assertTrue(condition); 
logger.info(condition ? "PASS" : "FAIL"); 

或子类Assert并重新实​​现assertTrue做记录你。请注意,在这种情况下,您的日志行将声明在Assert.assertTrue之内,而不是呼叫点,因此您必须以某种方式解决该问题。

+0

这就是我现在这样做的方式,但我不想编写额外的代码来记录它。 rollstuhlfahrer说,或许最好的办法就是覆盖断言类。我认为我可以找到一种我不知道的不同方式。非常感谢你们的支持,谢谢你的回复 – vali83 2012-07-26 07:16:20

+2

不要以为这是行得通的,如果它失败了,日志行就不会被调用。 – Tom 2012-07-26 07:20:42

+0

@Tom我不写单元测试,但硒测试,有时我需要有断言证明一些条件得到满足,我也希望能够在日志中看到这一点 – vali83 2012-07-26 10:42:22