我正在使用 Java 语言和带有最新 webdriver 和 testng 版本的 Eclipse Neon IDE 开发一个 TestNG 自动化框架。我正在使用 webdriver 3.9.1 版本和 TestNG 6.14.3 版本。我有一个包含多个套件文件的主 testng.xml 文件,每个文件都是为添加到 AUT 各个模块的项目中的独立类创建的。
可能是主套件文件中的所有或少数套件文件根据要求执行。每个文件只能执行一次。登录套件文件将始终执行,然后是所需的测试模块。问题是主 testng.xml 文件中的最后一个套件文件运行了两次。以下是供参考的 xml 文件片段:
掌握testng.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="allSuites" thread-count="5" verbose="1" allow-return-values="false" parallel="false" data-provider-thread-count="10" junit="false" configfailurepolicy="skip" skipfailedinvocationcounts="false">
<!-- <suite guice-stage="DEVELOPMENT" name="All" verbose="1"> -->
<suite-files>
<suite-file path="./TestNG_ClassXMLs/LoginTest.xml" />
<suite-file path="./TestNG_ClassXMLs/ProfileTest.xml" />
</suite-files>
</suite> <!-- Default suite -->
ProfileText.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Identities-IMSI" thread-count="5" verbose="1" allow-return-values="false" parallel="false" data-provider-thread-count="10" junit="false" configfailurepolicy="skip" skipfailedinvocationcounts="false">
<!-- <suite name="Suite" parallel="false">-->
<!-- <test name="Test">
<classes>
<class name="GUIScreens_Tests.IMSI_Test"/>
</classes>
</test> Test -->
<test verbose="2" name="AddProfile">
<classes>
<class name="TestCases.Profile_Test" >
<methods>
<include name="testProfile" />
<include name="addProfile" />
<include name="delProfile" />
<!-- <include name="exportDataAsCSV" />
<include name="dualWriteVerification" />-->
</methods>
</class>
<parameter name="TestCaseID" value="Profile_Add_TC001"/>
<parameter name="TestData File Path" value="/TestData/dataFile.xlsx"/>
<parameter name="SheetName" value="Profiles"/>
<parameter name="TestDescription" value="Add a new profile."/>
</classes>
</test>
</suite> <!-- Suite -->
登录.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="LoginTest" thread-count="5" verbose="1" allow-return-values="false" parallel="false" data-provider-thread-count="10" junit="false" configfailurepolicy="skip" skipfailedinvocationcounts="false">
<test thread-count="5" verbose="2" name="Login">
<classes>
<class name="TestCases.Login_Test">
<!-- <methods>
<include name="testLogin" />
</methods>-->
</class>
<parameter name="TestCaseID" value="Login_TC001" />
<parameter name="TestData File Path" value="/TestData/dataFile.xlsx" />
<parameter name="SheetName" value="Login" />
<parameter name="TestDescription" value="Login Success" />
</classes>
</test>
</suite>