powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / JUnit, данные из XML, Data Driven Testing
6 сообщений из 6, страница 1 из 1
JUnit, данные из XML, Data Driven Testing
    #38489368
serg130191
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пытаюсь организовать data-driven test (DDT) на JUnit c взятием тестовых данных из XML-файла. Всё это дело строю с помощью XMLParameterizedRunner.class ( https://code.google.com/p/junitext/w...unnerReference), но не работает. Подскажите в чем проблема и как её исправить, или какой-либо другой способ организовать DDT или "параметризированный" тест с данными из XML.

Тестиреумый класс:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
package calc;
 
public class Calc {
 
    public int Sum(int x, int y){
        return (x+y);
    }   
}



Тест:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
package junit;
 
import static org.junit.Assert.assertEquals;
 
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junitext.XMLParameters;
import org.junitext.runners.XMLParameterizedRunner;
 
 
@RunWith(XMLParameterizedRunner.class)
public class CalcTest{
            
      private int fInput;
      private int fExpected;
 
      @XMLParameters("input.xml")
      public CalcTest(int input, int expected) {
        fInput= input;
        fExpected= expected;
      }
    
        @Test
        public void testSum() {
            assertEquals(fInput,fExpected);
        }
    
}



XML:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<?xml version="1.0" encoding="UTF-8" ?>
<tests>
  <test>
     <value type="java.lang.Ingeter" >0</value>
     <value type="java.lang.Ingeter" >0</value>
  </test>
  <test>
     <value type="java.lang.Ingeter" >1</value>
     <value type="java.lang.Ingeter" >1</value>
  </test>
  <test>
     <value type="java.lang.Ingeter" >2</value>
     <value type="java.lang.Ingeter" >1</value>
  </test>
</tests>



При запуске выдаёт:

java.lang.NullPointerException
at java.io.FileInputStream.<init>(Unknown Source)
at org.junitext.runners.parameters.factory.DigesterParameterFac tory.createParameters(Unknown Source)
at org.junitext.runners.XMLParameterizedRunner$RunAllXMLParamet erMethods.getParametersList(Unknown Source)
at org.junitext.runners.XMLParameterizedRunner$RunAllXMLParamet erMethods.<init>(Unknown Source)
at org.junitext.runners.XMLParameterizedRunner.<init>(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Nativ e Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknow n Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Un known Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.junit.internal.requests.ClassRequest.buildRunner(ClassRe quest.java:33)
at org.junit.internal.requests.ClassRequest.getRunner(ClassRequ est.java:28)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.< init>(JUnit4TestReference.java:33)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassRefere nce.<init>(JUnit4TestClassReference.java:25)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.crea teTest(JUnit4TestLoader.java:48)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.load Tests(JUnit4TestLoader.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTe sts(RemoteTestRunner.java:452)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTe sts(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(R emoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main( RemoteTestRunner.java:197)

Подключённые jar:
junit-4.3.jar
hamcrest-core-1.3.jar
junitext-0.2.4.jar
commons-digester-1.7.jar
...
Рейтинг: 0 / 0
JUnit, данные из XML, Data Driven Testing
    #38489572
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serg130191,

Вот подобный пример http://junitext.sourceforge.net/tutorial.html

похоже Вы неправильно указываете местонахождение файла
@XMLParameters("input.xml")

если "input.xml" файл Вы положили под

resources директорией то возможно надо написать @XMLParameters("/input.xml") т.е. воткнуть "/"
...
Рейтинг: 0 / 0
JUnit, данные из XML, Data Driven Testing
    #38489672
serg130191
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Данный пример я видел - и он так же у меня не работает, выдаёт те же ошибки, что и приведённый выше. Так же думаю, что ошибка с расположением XML, но он у меня лежит уже во всех папках проекта, где можно и где нельзя.
...
Рейтинг: 0 / 0
JUnit, данные из XML, Data Driven Testing
    #38489697
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В данном примере нет ничего такого что нельзя было-бы сделать простыми
утверждениями.
...
Рейтинг: 0 / 0
JUnit, данные из XML, Data Driven Testing
    #38489701
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serg130191Спасибо. Данный пример я видел - и он так же у меня не работает, выдаёт те же ошибки, что и приведённый выше. Так же думаю, что ошибка с расположением XML, но он у меня лежит уже во всех папках проекта, где можно и где нельзя.

Тогда тупо впарь абсолютный путь типо C:/opt/xml/input.xml
...
Рейтинг: 0 / 0
JUnit, данные из XML, Data Driven Testing
    #38504498
serg130191
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ваши ответы, т.к. отвечали только на данном форуме. Проблему решил. Выкладываю решение может кому и пригодится)

src
|__junit
____|__CalcTest.java
____|__input.xml

CalcTest.java:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
package junit;

import static org.junit.Assert.assertEquals;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.junitext.XMLParameters;
import org.junitext.runners.XMLParameterizedRunner;


@RunWith(XMLParameterizedRunner.class)
public class CalcTest{
		  
	
	  private int fInput;
	  private int fExpected;

	  @XMLParameters("/junit/input.xml")
	  public CalcTest(String input, String expected) {
	    fInput= Integer.parseInt(input);
	    fExpected= Integer.parseInt(expected);
	  }
	
		@Test
		public void testSum() {
			assertEquals(fInput,fExpected);
		}
	
}



input.xml:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<?xml version="1.0" encoding="UTF-8" ?>
<tests>
  <test>
     <string id="input" value="10" />
     <string id="expected" value="10" />
  </test>
    <test>
     <string id="input" value="10" />
     <string id="expected" value="1" />
  </test>
    <test>
     <string id="input" value="1" />
     <string id="expected" value="1" />
  </test>
</tests>



JAR-ы:
commons-beanutils-1.7.0.jar
commons-digester-1.7.jar
commons.logging-1.1.1.jar
junit-4.3.jar
junitext-0.2.4.jar
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / JUnit, данные из XML, Data Driven Testing
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]