我想知道如何调用具有@Test注释的测试方法。 Testng是否在内部创建测试类的对象?如果是,则该对象何时死亡? 这是我的Testng文件
<test name="lOGIN" preserve-order="true">
<classes>
<class name="xtr.chaut.test.LoginConnectHealthy">
<methods>
<include name="openLoginPage" />
<include name="validLogin" />
</methods>
</class>
<class name="xtr.chaut.test.HomeTest">
<methods>
<include name="patientProfile" />
</methods>
</class>
<class name="xtr.chaut.test.LoginConnectHealthy">
<methods>
<include name="logout" />
</methods>
</class>
此处 LoginConnectHealthy 类出现两次。 testng是否为它们使用相同的对象,或者为它们创建不同的实例?
答案 0 :(得分:0)
回答你的问题:最好使用“AfterMethod”注释,而不是实例化一个单独调用“logout”的新类。 TestNG通常不是设计为在测试组中两次调用同一个类。它的设计目标是测试组中的每个类别。只需查看<packages>
标记和preserve-order
属性的文档,就可以了解情况。它可能巧合,但你的milage会有所不同。
TestNG测试具有与JUnit测试一样的生命周期,具有“之前”和“之后”事件。如果查看TestNG运行生成的.html报告,您将在报告中看到这些事件。因此,不应该对测试对象的寿命有任何疑问。您可以通过阅读所有TestNG文档来更好地理解它,其中包括工厂如何工作以及数据提供者的信息。您可以poke around on this example I made,使用mvn.bat test
运行它,然后找到名为methods.html的.html报告文件。