Я схожу с ума здесь, так что медведь со мной ... Мы используем Fitnesse (с фреймворком DbFit/на основе FIT), чтобы автоматизировать некоторые тесты, в которых мы запускаем некоторые команды оболочки. У нас есть приспособление, которое подключается к серверу Linux, выполняет команду и возвращает результаты (см ниже)Что ожидает функция проверки DoFixture в качестве входных данных?
class SSHConnection {
private static final String DEFAULT_KEY = "~/.ssh/id_rsa";
private String host;
private String password;
private int port;
private String privateKey;
private Session session;
private String user;
/** Creates a JSch object and open a connection with a remote server using the values set in the class variables.
*/
public void connect() {.........}
/**
* Executes a command in the remote server using the connection opened by connect().
* @param command command to execute in the remote server
* @return the output result of the command as String
*/
public String execute(String command) {
logger.info("Executing command: " + command);
String result;
try {
ChannelExec channelExec = (ChannelExec) session.openChannel("exec");
channelExec.setCommand(command);
// Open exec channel
channelExec.connect();
InputStream stream = channelExec.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
StringBuilder output = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
output.append(line).append("\n");
}
result = output.toString();
// Close exec channel
channelExec.disconnect();
logger.debug("Command executed successfully: " + result);
} catch (JSchException | IOException e) {
logger.error("Error executing command: " + e.getMessage());
e.printStackTrace();
return "";
}
return result;
}}
Так что я жду, что бы ни прибудет, отображаемые на оболочке после выполнения команды должны быть возвращено (как строка) и по сравнению с тем, что требует мой тест в фитнесе.
Fitnesse ловит результаты, но всегда терпит неудачу сравнения, и я не знаю, почему (я только добавил патч в команду, чтобы удалить пробельные, но все же сравнение неуспешно !!
Я чувствую, как Fitnesse дразнит меня ., показывая мне то же значение, как ожидается, фактические и дифф ли это и кодирования вопрос это вопрос типа Java Как проверить работу
Edit:? Я даже попытался запустить команду оболочки в два раза и сохранить результат в первый раз, а затем установить его как Ожидаемые результаты. Он все еще не работает.
|set | VarAddress | run command | cat AddressNoSpaces.txt |
|check| run command | cat AddressNoSpaces.txt | @{VarAddress} |
Более того, я даже попытался дважды запустить команду оболочки и сохранить результаты в переменной в первый раз, а затем установить ее как ожидаемый результат. ЭТО ВСЕ ЕЩЕ НЕ СКАЛО! | набор | VarAddress | команда запуска | cat AddressNoSpaces.txt | | проверить | команда запуска | cat AddressNoSpaces.txt | @ {VarAddress} | – tester