testng.xml пропускает тесты? - PullRequest
       11

testng.xml пропускает тесты?

0 голосов
/ 10 октября 2018

Итак, у меня есть несколько тестов, которые успешно выполняются, если я запускаю его непосредственно как тест TestNG или если я запускаю файл testng.xml, который содержит тест.Но в настоящее время я пытаюсь вызвать метод Run TestNG, когда делаю запрос к своему сервлету Java.Я использую собственный репортер, чтобы записать результаты в файл json и отправить их обратно в ответ.

Однако всякий раз, когда я отправляю запрос сервлету, возвращаемые результаты сообщают мне, что всеиз моих тестов пропускаются.Почему мои тесты успешно выполняются при прямом доступе и просто пропускаются при вызове TestNG.run ()?

Вот мой testng.xml:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">

<suite name="MyTestSuite">
    <listeners>
        <listener class-name="util.Listener"></listener>
        <listener class-name="util.JsonReporter"></listener>
    </listeners>
    <test name="TestOne">
        <classes>
            <class name="testngs.MyTest"></class>
        </classes>
    </test>
</suite>

И короткий фиктивный тест:

package testngs;

import java.io.File;

import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.Assert;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;

import pages.MyPage;

public class MyTest {

    public static MyPage myPage;
    public static WebDriver driver;

    @BeforeSuite
    public void setUpDriverAndPage() {
        File file = new File("src/main/resources/chromedriver.exe");
        System.setProperty("webdriver.chrome.driver", file.getAbsolutePath());
        driver = new ChromeDriver();
        myPage = new ManageBatchPage(driver);
        driver.get("https://www.google.com");
    }

    @Test
    public void createBatch() throws InterruptedException {
        // filler code

        Assert.assertEquals("hello", "hello");

    }

    @AfterSuite
    public void cleanup() {
        driver.quit();
    }
}

И мой код сервлета:

if (uri.equals("/TestProject/getTests.do")) {       
    TestNG runner = new TestNG();
    List<String> suiteFiles = new ArrayList<String>();
    suiteFiles.add(/*path to my xml*/);
    runner.setTestSuites(suiteFiles);
    runner.run();

    // read results from json file
    JsonArray testResults = ResultParser.parseJson();

    response.setContentType("application/json");
    response.getWriter().print(testResults);
}

1 Ответ

0 голосов
/ 10 октября 2018

Работает, но не элегантно.Оказывается, моему тестовому файлу не нравится путь моего веб-драйвера, когда он запускается с сервера, но он отлично работает, когда я запускаю файл напрямую.Я должен создать файл свойств или что-то, что содержит абсолютный путь, когда я запускаю его на сервере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...