0

我在我的 testng.xml 和 testng Suite 中运行是正确的,但它里面的类没有运行。testng.xml 文件:

    <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="TestAll">
  <test name="Test">
  <parameter name="first-name"  value="Here we Go is not displayed after log in!!! "/>
    <classes>
        <class name="tests.LogIn">
    </class>
    </classes>
  </test> <!-- Test -->
</suite> <!-- Suite -->

我正在为该类使用额外的 Appium 和 JUnit 库。Java代码类:

package tests;

import java.net.URL;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.annotations.Parameters;

import io.appium.java_client.AppiumDriver;
import io.appium.java_client.MobileElement;
import io.appium.java_client.ios.IOSDriver;
import io.appium.java_client.remote.MobileCapabilityType;



import static common.Helper.*;
import static common.Element.*;


public class LogIn {

    private static final String USERNAME = "string";
    private static final String USERPASSWORD = "string";


    //Config and Setup a AppiumDriverInstance 
     public AppiumDriver<MobileElement> driver;
      public WebDriverWait wait;
      @Before
      public void setUp() throws Exception {
        // set up appium for ios instance
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone 5s");
        capabilities.setCapability(MobileCapabilityType.APP, "/path/to/file");
        driver = new IOSDriver<MobileElement>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
        wait = new WebDriverWait(driver, 30);
      }


      @After
      public void tearDown() throws Exception {
        driver.quit();
      }


      @Parameters({ "first-name" })
      @Test
      public void findFirstElement() throws InterruptedException {


          //check if FTU "Here We go" is shown
          iOsAssertExists(WELTBILD_DE_HEREWEGO_XPATH,"Here we Go is not displayed after log in!!! ", driver);

          //tab on screen to close FTU "Here we go"
          driver.findElementByXPath(WELTBILD_DE_HEREWEGO_XPATH).tap(1,100);
          Thread.sleep(3000);

      }

}

该课程运行良好,但我不知道为什么 testng 没有运行它。这是运行的结果:

[TestNG] Running:
  /Users/vorse/nga/ProductFamilyTests/AutomationTests/AppiumTest/testng.xml


===============================================
TestAll
Total tests run: 0, Failures: 0, Skips: 0
===============================================
4

2 回答 2

1

您正在创建 testNG.xml 并使用 junit 注释,这就是它不起作用的原因,您需要导入它: import org.testng.annotations.*;

您还需要使用 testNg 的 @Test,@BeforeTest/@BeforeClass 代替 @Before,@After 的类似情况 --> @AfterTest/@AfterClass

于 2016-03-18T12:40:06.217 回答
1

来自 TestNG 文档5.12 - JUnit 测试

TestNG 可以运行 JUnit 3 和 JUnit 4 测试。您需要做的就是将 JUnit jar 文件放在类路径中,在属性中指定您的 JUnit 测试类并将testng.classNames属性设置testng.junit为 true:

<test name="Test1" junit="true">
  <classes>
    <!-- ... -->
于 2016-03-18T13:28:38.633 回答