11 / 11 / 1
Регистрация: 24.11.2015
Сообщений: 359
1

Тестирование. Запись в файл

02.08.2016, 15:53. Показов 1486. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пробую понять, как работать с простеньким тестированием. Хочу, чтобы результаты тестов записывались в файл.
Вот тут указано http://doc.qt.io/qt-4.8/qtestlib-manual.html, что должен быть спецификатор -o filename, но где - непонятно.

Кликните здесь для просмотра всего текста
C++ (Qt)
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <QtTest>
#include "MyClass.h"
#include <QFile>
 
// ======================================================================
class Test_MyClass : public QObject {
Q_OBJECT
 
private slots:
    void min_data();
    void max_data();
    void min();
    void max();
 
};
 
// ----------------------------------------------------------------------
void Test_MyClass::min_data()
{
    QTest::addColumn<int>("arg1");
    QTest::addColumn<int>("arg2");
    QTest::addColumn<int>("result");
 
    QFile file("FileTest.txt");QFileInfo fileInfo(file);
 
    QTextStream stream(&file);
 
 
    stream<<"/* " << fileInfo.lastModified().toString()<<"*/";
    QTest::newRow("min_test1") << 25 << 0 << 0;
    QTest::newRow("min_test2") << -12 << -5 << -12;
    QTest::newRow("min_test3") << 2007 << 2007 << 2007;
    QTest::newRow("min_test4") << -12 << 5 << -12;
}
 
// ----------------------------------------------------------------------
void Test_MyClass::max_data()
{
    QTest::addColumn<int>("arg1");
    QTest::addColumn<int>("arg2");
    QTest::addColumn<int>("result");
 
    QTest::newRow("max_test1") << 25 << 0 << 25;
    QTest::newRow("max_test2") << -12 << -5 << -5;
    QTest::newRow("max_test3") << 2007 << 2007 << 2007;
    QTest::newRow("max_test4") << -12 << 5 << 1;
}
 
// ----------------------------------------------------------------------
void Test_MyClass::min()
{
    MyClass myClass;
    QFETCH(int, arg1);
    QFETCH(int, arg2);
    QFETCH(int, result);
 
    QCOMPARE(myClass.min(arg1, arg2), result);
}
 
// ----------------------------------------------------------------------
void Test_MyClass::max()
{
    MyClass myClass;
    QFETCH(int, arg1);
    QFETCH(int, arg2);
    QFETCH(int, result);
 
    QCOMPARE(myClass.max(arg1, arg2), result);
}
 
QTEST_MAIN(Test_MyClass)
 #include "test.moc"


C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void Test_MyClass::min_data()
{
    QTest::addColumn<int>("arg1");
    QTest::addColumn<int>("arg2");
    QTest::addColumn<int>("result");
 
    QFile file("FileTest.txt");QFileInfo fileInfo(file);
 
    QTextStream stream(&file);
 
//?
 
    stream<<"/* " << fileInfo.lastModified().toString()<<"*/";
    QTest::newRow("min_test1") << 25 << 0 << 0;
    QTest::newRow("min_test2") << -12 << -5 << -12;
    QTest::newRow("min_test3") << 2007 << 2007 << 2007;
    QTest::newRow("min_test4") << -12 << 5 << -12;
}
как записать результат тестирования в файл?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.08.2016, 15:53
Ответы с готовыми решениями:

Разработать командный (процедурный) файл.Выполнить его отладку и тестирование
Здравствуйте! Помогите, пожалуйста. Нужно разработать командный (процедурный) файл согласно...

Запись в файл - проверить, не идет ли в него запись, чтобы не генерировалось исключение
Доброе время суток! Вот такой пример: Imports System Imports System.IO Module Module1 ...

Пожалуйста напишите программу, которая добавляет запись в типизированый файл тип - запись
Которая добавляет запись в типизированый файл тип - запись добавляет к той записи в файле...

Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран
1.Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран...

9
93 / 93 / 33
Регистрация: 17.03.2012
Сообщений: 536
02.08.2016, 16:26 2
В консоли при запуске указываете флаг -o filename.
Bash
1
/myTestDirectory$ testMyWidget -o FileTest.txt
Надо только еще определиться с путем до файла.
1
11 / 11 / 1
Регистрация: 24.11.2015
Сообщений: 359
02.08.2016, 16:30  [ТС] 3
Но тут ведь нигде не запускается консоль.
Если эту директорию для файла оставить пустой, то я так понимаю, он просто запишет в место, где создает исполняемый файлЛ
0
93 / 93 / 33
Регистрация: 17.03.2012
Сообщений: 536
02.08.2016, 16:37 4
Цитата Сообщение от Zigfrid Посмотреть сообщение
Если эту директорию для файла оставить пустой, то я так понимаю, он просто запишет в место, где создает исполняемый файлЛ
В ту директорию, в которой вы находитесь.
Цитата Сообщение от Zigfrid Посмотреть сообщение
Но тут ведь нигде не запускается консоль.
В qt creator запуск происходит не через консоль, да. К сожалению, не могу сказать, где их там установить для запуска.
Гугл выдал вот http://tufangorel.blogspot.ru/... -file.html
2
11 / 11 / 1
Регистрация: 24.11.2015
Сообщений: 359
02.08.2016, 16:45  [ТС] 5
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void Test_MyClass::min_data()
{
    QTest::addColumn<int>("arg1");
    QTest::addColumn<int>("arg2");
    QTest::addColumn<int>("result");
 
 
 
    QTest::newRow("min_test1") << 25 << 0 << 0;
    QTest::newRow("min_test2") << -12 << -5 << -12;
    QTest::newRow("min_test3") << 2007 << 2007 << 2007;
    QTest::newRow("min_test4") << -12 << 5 << -12;
 
    QStringList testCmd;
    testCmd<<" "<<"-o"<<" QTestString_log.txt";
    QTest::qExec(this, testCmd);
    //program unexpectably finished//
}
//program unexpectably finished//
0
93 / 93 / 33
Регистрация: 17.03.2012
Сообщений: 536
02.08.2016, 17:03 6
Because this a QT Console Application, main.cpp file contains only main() function which calls QTest::qExec(&testString, testCmd) function to execute testfunctions in the specified test object.
Посмотрите внимательнее, как там сделано.

Хотя... странно...

Добавлено через 7 минут
QTest::qExec() в main'е. Чтобы использовать как вы, необходимо воспользоваться макросом QTEST_MAIN()
http://doc.crossplatform.ru/qt... html#qExec
http://doc.crossplatform.ru/qt... QTEST_MAIN
0
11 / 11 / 1
Регистрация: 24.11.2015
Сообщений: 359
02.08.2016, 17:12  [ТС] 7
А у меня же стоит QTEST_MAIN().
Или это нужно в конце функции вставить??
0
93 / 93 / 33
Регистрация: 17.03.2012
Сообщений: 536
02.08.2016, 17:25 8
Цитата Сообщение от Zigfrid Посмотреть сообщение
testCmd<<" "<<"-o"<<" QTestString_log.txt";
Пробел не является ли лишним перед QTestString?
И какая ось?
0
11 / 11 / 1
Регистрация: 24.11.2015
Сообщений: 359
02.08.2016, 18:22  [ТС] 9
Slip., Ubuntu 16/04, пробел убрал - тоже самое

Bash
1
2
3
4
5
6
7
8
9
10
11
********* Start testing of Test_MyClass *********
Config: Using QtTest library 5.7.0, Qt 5.7.0 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 4.9.1 20140922 (Red Hat 4.9.1-10))
PASS   : Test_MyClass::initTestCase()
WARNING: Test_MyClass::min() testdata BLACKLIST could not be located!
WARNING: Test_MyClass::min() testdata GPU_BLACKLIST could not be located!
QFATAL : ::UnknownTestFunc() ASSERT: "!currentTestObject" in file qtestcase.cpp, line 1667
FAIL!  : ::UnknownTestFunc() Received a fatal error.
   Loc: [Unknown file(0)]
Totals: 0 passed, 1 failed, 0 skipped, 0 blacklisted, 0ms
********* Finished testing of  *********
Программа неожиданно завершилась.
 Комментарий модератора 
Выхлоп консоли обрамляется тегом BASH
0
93 / 93 / 33
Регистрация: 17.03.2012
Сообщений: 536
03.08.2016, 10:07 10
Меня интересует, сможет ли убунту создать файл таким образом.
Поэтому попробуйте еще создать сначала пустой файл руками, а потом в него писать.

Попробуйте собрать ваш проект и запустить из консоли все-таки.

Все это навряд ли поможет, но все же.
0
03.08.2016, 10:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.08.2016, 10:07
Помогаю со студенческими работами здесь

Запись чисел из файла 1, и запись в файл 2 в отсортированном виде
Задание: Есть файл 1, в нем находятся числа, нужно их отсортировать по возрастанию и записать в...

Запись в текстовый файл (каждая запись - отдельная строка)
Добрый вечер) Программа берет данные таблицы Access и записывает их в строчку. Проблема заключается...

Как разрешить запись в файл, по умолчанию запись не разрешена
Помогите! НАчинающий php - программист. Как разрешить запись в файл, по умолчанию запись не...

Запись строки в массив, сортировка, удаление и запись в файл
Нужна помощь. Из edit box к нам приходят строки мы их фильтруем. нужно строки записать в массив,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru