Метод зависит от несуществующей группы - Testng - PullRequest
6 голосов
/ 16 февраля 2012

Я пытаюсь создать два теста, один из которых зависит от выполнения другого.Проект, над которым я работаю, наполнен устаревшим кодом, поэтому я пытаюсь сделать основные части приложения тестируемыми.Первый тест в основном будет пытаться создать соединение с базой данных и установить некоторые статические переменные.Test2 будет использовать соединение и переменные для вставки некоторых данных.Я бы предпочел не делать то, что Test1 делает еще раз в Test2.

Я сделал Test2 зависимым от test1, чтобы в случае сбоя Test1 Test2 не выполнялся.Но если Test2 не пройден, я хочу, чтобы он мог быть запущен повторно.Когда я пробую это в Intellij IDEA, я получаю следующее:

java.lang.Throwable: Method a.stack.Test2.failingTest() depends on nonexistent group "FirstTest"

Что мне не хватает?

Test1:

package a.stack;

import org.testng.Assert;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;

/**
* The First test
*/
@Test(groups = {"FirstTest"})
public class Test1 {

    public void init(){
        // Initialize something which other tests should use
        Assert.assertTrue(true);
    }
}

И Test2:

package a.stack;

import org.testng.Assert;
import org.testng.annotations.Test;

/**
*
*/
@Test(groups = {"OtherTests"}, dependsOnGroups = {"FirstTest"})
public class Test2 {
    public void failingTest(){
        Assert.assertTrue(false);
    }
}

Testng.xml:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="test" verbose="1">
    <test name="basic" junit="false">
        <groups>
            <run>
                <include name="FirstTest"/>
                <include name="OtherTests"/>
            </run>
        </groups>
        <packages>
            <package name="a.*"/>
        </packages>
    </test>
</suite>

Ответы [ 3 ]

0 голосов
/ 16 октября 2016

Если тест завершается неудачно в наборе, то в выходном каталоге создается файл testng-failed.xml, который используется для повторного запуска неудачных случаев.Можете ли вы проверить этот файл, чтобы убедиться, что XML-файл содержит обе группы, а не только другие тесты, которые на самом деле не удалось?

 <run>
      <include name="FirstTest"/>
      <include name="OtherTests"/>
 </run>

Потому что, если у него нет группы FirstTest, то ошибкаdepends on nonexistent group "FirstTest" брошено.

0 голосов
/ 22 августа 2018

Код вашей группы неверен в testng.xml, так как он должен содержать имя пакета

    <groups>
        <run>
            <include name="packagename.FirstTest"/>
            <include name="packagename.OtherTests"/>
        </run>
    </groups>

, а затем включать ваши классы с именем пакета после тегов группы [это необязательно, так как вы уже используете имя пакета]

  <class name="packagename.classname1"/>
  <class name="packagename.classname2"/>

Код теперь должен работать

0 голосов
/ 17 февраля 2012

Вы уверены, что указанный вами пакет содержит методы в этой группе?

...