Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.222.131.58] |
|
Сообщ.
#1
,
|
|
|
Всем доброе время суток)
Тема "Тестирование консольных приложений Delphi с помощью языка Python." Почему такая тема вроде бы с Delphi не связанна. Не давно смотрел обучающее видео про использование языка Python для тестирования программ написанных на c++. И захотел сделать аналогичное для консольных приложении написанных на Delphi. В видео не рассматривается вариант для приложений с дескриптором. Ответ подсказал другой пример, который был дополнен догадками и прочтением справки. Сразу оговорюсь "Не претендую на полноту ответа по данной теме. Вариант больше похож на костыль и его возможно можно улучшить, не спорю. А также что это актуальная информация по данной теме так как я не стал искать дальше может уже придумали что-то новое просто мне неизвестно." Коротко так. Имеется приложение на вход подается строка из "единиц и нулей". на выход поступает "строки развертки" "единицы и нули". Строка на вход пример: 1100100100001111110110101010001000100001011010001100001000110100 Строки развертки выход (на входной пример): 1100100100001111110110101010001000100001011010001100001000110100 1111010100010110110111100111001100000000101101001101001100000000 0110001100011011111011101011000110000001111000001110000010010000 1011000100011111011111101111100101000000111000000110100101000000 1111100100011111101011101111010100000000111000001010010100000000 1111010100011111111011101111000100000000111000001110000100000000 1111000100011111111011101111000100000000111000001110000100000000 1101011010001000 1101101101010100 1110111000110000 0111111100010000 1010111110010000 1110111101010000 1110111100010000 1010 0111 1011 1111 1 Далее код без редактуры на Python. # Запуск программы консоли import subprocess from io import StringIO print('#1 ') args = ["D:\\1Руслан собираю 9.15 Гб\\Задание завершено 03.07.16\\консоль -7.2.1 строки\\Bibit.exe","1100100100001111110110101010001000100001011010001100001000110100"] process = subprocess.Popen(args, stdout=subprocess.PIPE) data = process.communicate() code = process.wait() print('Завершился без ошибок код ',code) # 0 #print(data) #print('Данные',data[0]) s = "".join(str(x) for x in data[0]) print() s = s.replace('49', '1') s = s.replace('48', '0') new = s.split('1310') for line in new: print(line) #*********************************************************** Write to File f = open('C:\\Documents and Settings\\LeyRus\\Рабочий стол\\Текстовый документ (2).txt','w') #f = open('D:\\Мой фалы с работы PAS\\test.txt','r') #for index in l: #f.write(index + '\n') f.write('#1 Данные'+ '\n') for line in new: f.write(line+ '\n') f.close() #********************************************************** End Writing print('#2 ') args = ["D:\\1Руслан собираю 9.15 Гб\\Задание завершено 03.07.16\\консоль -7.2.1 строки\\Bibit.exe","1100011001100111"] process = subprocess.Popen(args, stdout=subprocess.PIPE) data = process.communicate() code = process.wait() print('Завершился без ошибок код ',code) # 0 s = "".join(str(x) for x in data[0]) print() s = s.replace('49', '1') s = s.replace('48', '0') new = s.split('1310') for line in new: print(line) #*********************************************************** Apped to File f = open('C:\\Documents and Settings\\LeyRus\\Рабочий стол\\Текстовый документ (2).txt','a') #f = open('D:\\Мой фалы с работы PAS\\test.txt','r') #for index in l: #f.write(index + '\n') f.write("\n#2 Данные\n") for line in new: f.write(line+ '\n') f.close() #********************************************************** End Appending print('#3 ') args = ["D:\\1Руслан собираю 9.15 Гб\\Задание завершено 03.07.16\\консоль -7.2.1 строки\\Bibit.exe","0011011011110000001001010101110111011110100101110011110111001011"] process = subprocess.Popen(args, stdout=subprocess.PIPE) data = process.communicate() code = process.wait() print('Завершился без ошибок код ',code) # 0 s = "".join(str(x) for x in data[0]) print() s = s.replace('49', '1') s = s.replace('48', '0') new = s.split('1310') for line in new: print(line) #print('Данные',data[0]) #*********************************************************** Apped to File f = open('C:\\Documents and Settings\\LeyRus\\Рабочий стол\\Текстовый документ (2).txt','a') #f = open('D:\\Мой фалы с работы PAS\\test.txt','r') #for index in l: #f.write(index + '\n') f.write("\n#3 Данные\n") for line in new: f.write(line+ '\n') f.close() #********************************************************** End Appending Используется функция Popen из библиотеки subprocess. Версия Python 3.4.4 |
Сообщ.
#2
,
|
|
|
Дельфи тут ни при чем, да и такого уровня проверка делается даже проще на бат файлах. Вот если бы у тебя был набор ассетов из пар вход-ожидаемый выход, прогон в цикле со сравнением и выдачей ошибочных кейсов, отчеты и прочие навороты, тогда уже применение Питона оправдано. Т.ч. есть куда стремиться ))
|