#java #testing
#java #тестирование
Вопрос:
У меня есть класс («TestProject»), который должен выводить выходные данные другого класса на консоль, каждый раз используя другой входной текстовый файл (например, «input01.txt «, «input02.txt «).
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.PrintStream;
public class TestProject {
public static void main(String[] args) throws IOException {
for(int inputNumber = 2; inputNumber <= 7; inputNumber ) {
String[] arguments = new String[] {"input" String.format("d", inputNumber) ".txt", "1"};
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintStream newPS = new PrintStream(baos);
PrintStream oldPS = System.out;
System.setOut(newPS);
Project.main(arguments);
System.out.flush();
System.setOut(oldPS);
newPS.close();
System.out.println(baos.toString());
}
}
}
Это работает правильно для первого входного файла, как показано ниже:
arguments: "input02.txt" 0
1, 3, 80.5, 20, 60, 0, Stone, 0, 0
2, 3, 80.5, 20, 60, 0, Flame, 2, 2
1, 4, 80.0, 20, 60, 0, Stone, 0, 1
2, 4, 80.0, 20, 60, 0, Flame, 2, 2
1, 5, 79.5, 20, 60, 0, Stone, 0, 2
2, 5, 79.5, 20, 60, 0, Flame, 2, 2
1, 6, 79.0, 20, 60, 0, Stone, 1, 1
2, 6, 79.0, 20, 60, 0, Flame, 2, 2
Но после этого каждый последующий тест печатает только конечный результат первого теста:
arguments: "input03.txt" 0
1, 6, 79.0, 20, 60, 0, Stone, 1, 1
2, 6, 79.0, 20, 60, 0, Flame, 2, 2
arguments: "input04.txt" 0
1, 6, 79.0, 20, 60, 0, Stone, 1, 1
2, 6, 79.0, 20, 60, 0, Flame, 2, 2
arguments: "input05.txt" 0
1, 6, 79.0, 20, 60, 0, Stone, 1, 1
2, 6, 79.0, 20, 60, 0, Flame, 2, 2
arguments: "input06.txt" 0
1, 6, 79.0, 20, 60, 0, Stone, 1, 1
2, 6, 79.0, 20, 60, 0, Flame, 2, 2
arguments: "input07.txt" 0
1, 6, 79.0, 20, 60, 0, Stone, 1, 1
2, 6, 79.0, 20, 60, 0, Flame, 2, 2
Я подумал, что это может иметь какое-то отношение main()
к многократному вызову метода другого класса, но ничто в Интернете, похоже, не указывает на то, что это проблема.
При отдельном запуске основной программы вывод работает нормально для всех входных файлов. Это наводит меня на мысль, что проблема существует в этом коротком отрывке.
Заранее спасибо всем.
Комментарии:
1. Это может быть связано с тем, как работает ваш класс Project, нам нужно будет посмотреть, что он делает, чтобы иметь возможность помочь вам
2. Я могу включить in в вопрос, но я боюсь, что это сделает вопрос немного длиннее. Но если здесь нет очевидных проблем, по крайней мере, у меня есть направление (основной проект). Спасибо за помощь.