TestNG - предоставление параметров для тестирования уровня класса

Я запускаю тесты с использованием рабочего пространства TestNG, Java и Eclipse. Я могу проводить тесты разными способами. Я могу запустить файл TestNG или отдельные классы. Если я запускаю отдельный класс, параметры не берутся из файла TestNG.xml. Возможно, я захочу переключить тестирование на другой URL-адрес. Эта форма, приведенная в Руководстве, не работает и только выдает ошибки.

import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

public class ParameterizedTest1 {
   @Test
   @Parameters("myName")
   public void parameterTest(String myName) {
      System.out.println("Parameterized value is : " + myName);
   }
}

Это из учебника на https://www.tutorialspoint.com/testng/testng_parameterized_test.htm

Ошибка говорит следующее: [Utils] [ERROR] [Error] org.testng.TestNGException: Параметр url требуется для @Test в методе addProjectTask, но он не отмечен как @Optional и не определен. в C: \ Users \ SStaple \ AppData \ Local \ Temp \ testng-eclipse-38561327 \ testng-customsuite.xml

*** Я назвал свой URL-адрес параметра. то есть:

@Test(groups = { "all", "projects", "create", "simple" })
@Parameters("url")
public void addProjectTask(String url) {
    System.out.println("Parameterized value is : " + url);

Я не хочу перекодировать это каждый раз, когда переключаю URL.

Testng.xml выглядит так:

 <?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite allow-return-values = "false" configfailurepolicy = "skip"
    data-provider-thread-count = "10" group-by-instances = "false" guice-stage = "DEVELOPMENT"
    junit = "false" name = "hardening-simple" parallel = "none" preserve-order = "true"
    skipfailedinvocationcounts = "false" thread-count = "5">
    <parameter name = "browser" value = "firefox" />
    <parameter name = "url" value = "https://url/#/" />
    <parameter name = "printToFile" value = "true" />
    <parameter name = "trace" value = "false" />
    <parameter name = "opt" value = "true" />
    <parameter name = "customer" value = "Demo" />
    <parameter name = "network" value = "NSG Designated Streets (Type 1/2)" />
    <parameter name = "buildNo" value = "025" />
    <parameter name = "teamCity" value = "false" />
    <parameter name = "retest" value = "0" />
    <parameter name = "user" value = "normal" />
    <listeners>
        <listener class-name = "listeners.TestNGCustomReportListener" />
    </listeners>
    <test allow-return-values = "false" group-by-instances = "false"
        junit = "false" name = "firefoxTest" preserve-order = "true"
        skipfailedinvocationcounts = "false">
        <parameter name = "browser" value = "firefox" />
        <parameter name = "url" value = "https://url/#/" />
        <parameter name = "opt" value = "true" />
        <parameter name = "user" value = "normal" />
        <groups>
            <define name = "simple">
                <include name = "simple" />
            </define>
            <run>
                <include name = "simple" />
                <exclude name = "not-implemented" />
            </run>
        </groups>
        <classes>

Кто-нибудь знает правильный метод?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
813
2

Ответы 2

Эти параметры используются только в том случае, если класс запускается из testng.xml.

Использование параметров - не оптимальное решение. Управляйте своими значениями из файла свойств, таким образом вы можете сохранить все свои данные. Вы можете создавать переменные в своем коде и использовать значения из файла свойств. Вы можете изменить данные в файле свойств, не меняя код, но более управляемым способом. Если существует более одного набора данных, вы можете использовать несколько файлов свойств и просто указать адрес файла.

Учебник для файла свойств: https://thewikihow.com/video_bljA8dpfWeQ

Если бы вы могли внести в это некоторую ясность, это было бы более полезно. Ссылки обычно не одобряются, поскольку на них нельзя положиться. Возможно, вы могли бы объяснить, почему ваш ответ лучше.

JerodG 15.02.2020 15:09

Другие вопросы по теме