Renaming auto-tester ==> nitpick
|
@ -33,6 +33,6 @@ if (BUILD_TOOLS)
|
||||||
add_subdirectory(oven)
|
add_subdirectory(oven)
|
||||||
set_target_properties(oven PROPERTIES FOLDER "Tools")
|
set_target_properties(oven PROPERTIES FOLDER "Tools")
|
||||||
|
|
||||||
add_subdirectory(auto-tester)
|
add_subdirectory(nitpick)
|
||||||
set_target_properties(auto-tester PROPERTIES FOLDER "Tools")
|
set_target_properties(nitpick PROPERTIES FOLDER "Tools")
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
set (TARGET_NAME auto-tester)
|
set (TARGET_NAME nitpick)
|
||||||
project(${TARGET_NAME})
|
project(${TARGET_NAME})
|
||||||
|
|
||||||
# Automatically run UIC and MOC. This replaces the older WRAP macros
|
# Automatically run UIC and MOC. This replaces the older WRAP macros
|
||||||
|
@ -22,7 +22,7 @@ set (QT_LIBRARIES Qt5::Core Qt5::Widgets QT::Gui Qt5::Xml)
|
||||||
|
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
# Do not show Console
|
# Do not show Console
|
||||||
set_property (TARGET auto-tester PROPERTY WIN32_EXECUTABLE true)
|
set_property (TARGET nitpick PROPERTY WIN32_EXECUTABLE true)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_zlib()
|
target_zlib()
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
|
@ -1,11 +1,11 @@
|
||||||
# Auto Tester
|
# nitpick
|
||||||
|
|
||||||
The auto-tester is a stand alone application that provides a mechanism for regression testing. The general idea is simple:
|
Nitpick is a stand alone application that provides a mechanism for regression testing. The general idea is simple:
|
||||||
* Each test folder has a script that produces a set of snapshots.
|
* Each test folder has a script that produces a set of snapshots.
|
||||||
* The snapshots are compared to a 'canonical' set of images that have been produced beforehand.
|
* The snapshots are compared to a 'canonical' set of images that have been produced beforehand.
|
||||||
* The result, if any test failed, is a zipped folder describing the failure.
|
* The result, if any test failed, is a zipped folder describing the failure.
|
||||||
|
|
||||||
Auto-tester has 5 functions, separated into 4 tabs:
|
Nitpick has 5 functions, separated into 4 tabs:
|
||||||
1. Creating tests, MD files and recursive scripts
|
1. Creating tests, MD files and recursive scripts
|
||||||
1. Windows task bar utility (Windows only)
|
1. Windows task bar utility (Windows only)
|
||||||
1. Running tests
|
1. Running tests
|
||||||
|
@ -14,12 +14,12 @@ Auto-tester has 5 functions, separated into 4 tabs:
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
### Executable
|
### Executable
|
||||||
1. On Windows: download the installer by browsing to [here](<https://hifi-content.s3.amazonaws.com/nissim/autoTester/AutoTester-Installer-v6.6.exe>).
|
1. On Windows: download the installer by browsing to [here](<https://hifi-content.s3.amazonaws.com/nissim/nitpick/Nitpick-Installer-v6.6.exe>).
|
||||||
2. Double click on the installer and install to a convenient location
|
2. Double click on the installer and install to a convenient location
|
||||||

|

|
||||||
3. To run the auto-tester, double click **auto-tester.exe**.
|
3. To run nitpick, double click **nitpick.exe**.
|
||||||
### Python
|
### Python
|
||||||
The TestRail interface requires Python 3 to be installed. Auto-Tester has been tested with Python 3.7.0 but should work with newer versions.
|
The TestRail interface requires Python 3 to be installed. Nitpick has been tested with Python 3.7.0 but should work with newer versions.
|
||||||
|
|
||||||
Python 3 can be downloaded from:
|
Python 3 can be downloaded from:
|
||||||
1. Windows installer <https://www.python.org/downloads/>
|
1. Windows installer <https://www.python.org/downloads/>
|
||||||
|
@ -41,7 +41,6 @@ Verify that `/usr/local/bin/python3` exists.
|
||||||
1. Enter the AWS account number
|
1. Enter the AWS account number
|
||||||
1. Enter the secret key
|
1. Enter the secret key
|
||||||
1. Leave region name and ouput format as default [None]
|
1. Leave region name and ouput format as default [None]
|
||||||
|
|
||||||
1. Install the latest release of Boto3 via pip:
|
1. Install the latest release of Boto3 via pip:
|
||||||
pip install boto3
|
pip install boto3
|
||||||
#### Mac
|
#### Mac
|
||||||
|
@ -78,7 +77,7 @@ This function creates an MD file in the (user-selected) tests root folder. The
|
||||||
This function creates a file named `test.md` from a `test.js` script. The user will be asked for the folder containing the test script:
|
This function creates a file named `test.md` from a `test.js` script. The user will be asked for the folder containing the test script:
|
||||||
### Details
|
### Details
|
||||||
The process to produce the MD file is a simplistic parse of the test script.
|
The process to produce the MD file is a simplistic parse of the test script.
|
||||||
- The string in the `autoTester.perform(...)` function call will be the title of the file
|
- The string in the `nitpick.perform(...)` function call will be the title of the file
|
||||||
|
|
||||||
- Instructions to run the script are then provided:
|
- Instructions to run the script are then provided:
|
||||||
|
|
||||||
|
@ -110,26 +109,26 @@ The various scripts are called in alphabetical order.
|
||||||
|
|
||||||
An example of a recursive script is as follows:
|
An example of a recursive script is as follows:
|
||||||
```
|
```
|
||||||
// This is an automatically generated file, created by auto-tester on Jul 5 2018, 10:19
|
// This is an automatically generated file, created by nitpick on Jul 5 2018, 10:19
|
||||||
|
|
||||||
PATH_TO_THE_REPO_PATH_UTILS_FILE = "https://raw.githubusercontent.com/highfidelity/hifi_tests/master/tests/utils/branchUtils.js";
|
PATH_TO_THE_REPO_PATH_UTILS_FILE = "https://raw.githubusercontent.com/highfidelity/hifi_tests/master/tests/utils/branchUtils.js";
|
||||||
Script.include(PATH_TO_THE_REPO_PATH_UTILS_FILE);
|
Script.include(PATH_TO_THE_REPO_PATH_UTILS_FILE);
|
||||||
var autoTester = createAutoTester(Script.resolvePath("."));
|
var nitpick = createNitpick(Script.resolvePath("."));
|
||||||
|
|
||||||
var testsRootPath = autoTester.getTestsRootPath();
|
var testsRootPath = nitpick.getTestsRootPath();
|
||||||
|
|
||||||
if (typeof Test !== 'undefined') {
|
if (typeof Test !== 'undefined') {
|
||||||
Test.wait(10000);
|
Test.wait(10000);
|
||||||
};
|
};
|
||||||
|
|
||||||
autoTester.enableRecursive();
|
nitpick.enableRecursive();
|
||||||
autoTester.enableAuto();
|
nitpick.enableAuto();
|
||||||
|
|
||||||
Script.include(testsRootPath + "content/overlay/layer/drawInFront/shape/test.js");
|
Script.include(testsRootPath + "content/overlay/layer/drawInFront/shape/test.js");
|
||||||
Script.include(testsRootPath + "content/overlay/layer/drawInFront/model/test.js");
|
Script.include(testsRootPath + "content/overlay/layer/drawInFront/model/test.js");
|
||||||
Script.include(testsRootPath + "content/overlay/layer/drawHUDLayer/test.js");
|
Script.include(testsRootPath + "content/overlay/layer/drawHUDLayer/test.js");
|
||||||
|
|
||||||
autoTester.runRecursive();
|
nitpick.runRecursive();
|
||||||
```
|
```
|
||||||
## Create all Recursive Scripts
|
## Create all Recursive Scripts
|
||||||
### Usage
|
### Usage
|
||||||
|
@ -186,7 +185,7 @@ Evaluation proceeds in a number of steps:
|
||||||
1. The images are then pair-wise compared, using the SSIM algorithm. A fixed threshold is used to define a mismatch.
|
1. The images are then pair-wise compared, using the SSIM algorithm. A fixed threshold is used to define a mismatch.
|
||||||
|
|
||||||
1. In interactive mode - a window is opened showing the expected image, actual image, difference image and error:
|
1. In interactive mode - a window is opened showing the expected image, actual image, difference image and error:
|
||||||

|

|
||||||
|
|
||||||
1. If not in interactive mode, or the user has defined the results as an error, an error is written into the error folder. The error itself is a folder with the 3 images and a small text file containing details.
|
1. If not in interactive mode, or the user has defined the results as an error, an error is written into the error folder. The error itself is a folder with the 3 images and a small text file containing details.
|
||||||
|
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 476 KiB After Width: | Height: | Size: 476 KiB |
Before Width: | Height: | Size: 4 KiB After Width: | Height: | Size: 4 KiB |
|
@ -19,8 +19,8 @@
|
||||||
#include <quazip5/quazip.h>
|
#include <quazip5/quazip.h>
|
||||||
#include <quazip5/JlCompress.h>
|
#include <quazip5/JlCompress.h>
|
||||||
|
|
||||||
#include "ui/AutoTester.h"
|
#include "ui/Nitpick.h"
|
||||||
extern AutoTester* autoTester;
|
extern Nitpick* nitpick;
|
||||||
|
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
|
@ -30,9 +30,9 @@ Test::Test(QProgressBar* progressBar, QCheckBox* checkBoxInteractiveMode) {
|
||||||
|
|
||||||
_mismatchWindow.setModal(true);
|
_mismatchWindow.setModal(true);
|
||||||
|
|
||||||
if (autoTester) {
|
if (nitpick) {
|
||||||
autoTester->setUserText(GIT_HUB_DEFAULT_USER);
|
nitpick->setUserText(GIT_HUB_DEFAULT_USER);
|
||||||
autoTester->setBranchText(GIT_HUB_DEFAULT_BRANCH);
|
nitpick->setBranchText(GIT_HUB_DEFAULT_BRANCH);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -240,8 +240,8 @@ void Test::startTestsEvaluation(const bool isRunningFromCommandLine,
|
||||||
_expectedImagesFilenames.clear();
|
_expectedImagesFilenames.clear();
|
||||||
_expectedImagesFullFilenames.clear();
|
_expectedImagesFullFilenames.clear();
|
||||||
|
|
||||||
QString branch = (branchFromCommandLine.isNull()) ? autoTester->getSelectedBranch() : branchFromCommandLine;
|
QString branch = (branchFromCommandLine.isNull()) ? nitpick->getSelectedBranch() : branchFromCommandLine;
|
||||||
QString user = (userFromCommandLine.isNull()) ? autoTester->getSelectedUser() : userFromCommandLine;
|
QString user = (userFromCommandLine.isNull()) ? nitpick->getSelectedUser() : userFromCommandLine;
|
||||||
|
|
||||||
foreach(QString currentFilename, sortedTestResultsFilenames) {
|
foreach(QString currentFilename, sortedTestResultsFilenames) {
|
||||||
QString fullCurrentFilename = _snapshotDirectory + "/" + currentFilename;
|
QString fullCurrentFilename = _snapshotDirectory + "/" + currentFilename;
|
||||||
|
@ -268,7 +268,7 @@ void Test::startTestsEvaluation(const bool isRunningFromCommandLine,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
autoTester->downloadFiles(expectedImagesURLs, _snapshotDirectory, _expectedImagesFilenames, (void *)this);
|
nitpick->downloadFiles(expectedImagesURLs, _snapshotDirectory, _expectedImagesFilenames, (void *)this);
|
||||||
}
|
}
|
||||||
void Test::finishTestsEvaluation() {
|
void Test::finishTestsEvaluation() {
|
||||||
int numberOfFailures = compareImageLists();
|
int numberOfFailures = compareImageLists();
|
||||||
|
@ -288,7 +288,7 @@ void Test::finishTestsEvaluation() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_isRunningInAutomaticTestRun) {
|
if (_isRunningInAutomaticTestRun) {
|
||||||
autoTester->automaticTestRunEvaluationComplete(zippedFolderName, numberOfFailures);
|
nitpick->automaticTestRunEvaluationComplete(zippedFolderName, numberOfFailures);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -429,22 +429,22 @@ ExtractedText Test::getTestScriptLines(QString testFileName) {
|
||||||
QString line = stream.readLine();
|
QString line = stream.readLine();
|
||||||
|
|
||||||
// Name of test is the string in the following line:
|
// Name of test is the string in the following line:
|
||||||
// autoTester.perform("Apply Material Entities to Avatars", Script.resolvePath("."), function(testType) {...
|
// nitpick.perform("Apply Material Entities to Avatars", Script.resolvePath("."), function(testType) {...
|
||||||
const QString ws("\\h*"); //white-space character
|
const QString ws("\\h*"); //white-space character
|
||||||
const QString functionPerformName(ws + "autoTester" + ws + "\\." + ws + "perform");
|
const QString functionPerformName(ws + "nitpick" + ws + "\\." + ws + "perform");
|
||||||
const QString quotedString("\\\".+\\\"");
|
const QString quotedString("\\\".+\\\"");
|
||||||
QString regexTestTitle(ws + functionPerformName + "\\(" + quotedString);
|
QString regexTestTitle(ws + functionPerformName + "\\(" + quotedString);
|
||||||
QRegularExpression lineContainingTitle = QRegularExpression(regexTestTitle);
|
QRegularExpression lineContainingTitle = QRegularExpression(regexTestTitle);
|
||||||
|
|
||||||
|
|
||||||
// Each step is either of the following forms:
|
// Each step is either of the following forms:
|
||||||
// autoTester.addStepSnapshot("Take snapshot"...
|
// nitpick.addStepSnapshot("Take snapshot"...
|
||||||
// autoTester.addStep("Clean up after test"...
|
// nitpick.addStep("Clean up after test"...
|
||||||
const QString functionAddStepSnapshotName(ws + "autoTester" + ws + "\\." + ws + "addStepSnapshot");
|
const QString functionAddStepSnapshotName(ws + "nitpick" + ws + "\\." + ws + "addStepSnapshot");
|
||||||
const QString regexStepSnapshot(ws + functionAddStepSnapshotName + ws + "\\(" + ws + quotedString + ".*");
|
const QString regexStepSnapshot(ws + functionAddStepSnapshotName + ws + "\\(" + ws + quotedString + ".*");
|
||||||
const QRegularExpression lineStepSnapshot = QRegularExpression(regexStepSnapshot);
|
const QRegularExpression lineStepSnapshot = QRegularExpression(regexStepSnapshot);
|
||||||
|
|
||||||
const QString functionAddStepName(ws + "autoTester" + ws + "\\." + ws + "addStep");
|
const QString functionAddStepName(ws + "nitpick" + ws + "\\." + ws + "addStep");
|
||||||
const QString regexStep(ws + functionAddStepName + ws + "\\(" + ws + quotedString + ".*");
|
const QString regexStep(ws + functionAddStepName + ws + "\\(" + ws + quotedString + ".*");
|
||||||
const QRegularExpression lineStep = QRegularExpression(regexStep);
|
const QRegularExpression lineStep = QRegularExpression(regexStep);
|
||||||
|
|
||||||
|
@ -620,7 +620,7 @@ void Test::createTestAutoScript() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (createTestAutoScript(_testDirectory)) {
|
if (createTestAutoScript(_testDirectory)) {
|
||||||
QMessageBox::information(0, "Success", "'autoTester.js` script has been created");
|
QMessageBox::information(0, "Success", "'nitpick.js` script has been created");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -653,7 +653,7 @@ void Test::createAllTestAutoScripts() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QMessageBox::information(0, "Success", "'autoTester.js' scripts have been created");
|
QMessageBox::information(0, "Success", "'nitpick.js' scripts have been created");
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Test::createTestAutoScript(const QString& directory) {
|
bool Test::createTestAutoScript(const QString& directory) {
|
||||||
|
@ -677,8 +677,8 @@ bool Test::createTestAutoScript(const QString& directory) {
|
||||||
|
|
||||||
stream << "if (typeof PATH_TO_THE_REPO_PATH_UTILS_FILE === 'undefined') PATH_TO_THE_REPO_PATH_UTILS_FILE = 'https://raw.githubusercontent.com/highfidelity/hifi_tests/master/tests/utils/branchUtils.js';\n";
|
stream << "if (typeof PATH_TO_THE_REPO_PATH_UTILS_FILE === 'undefined') PATH_TO_THE_REPO_PATH_UTILS_FILE = 'https://raw.githubusercontent.com/highfidelity/hifi_tests/master/tests/utils/branchUtils.js';\n";
|
||||||
stream << "Script.include(PATH_TO_THE_REPO_PATH_UTILS_FILE);\n";
|
stream << "Script.include(PATH_TO_THE_REPO_PATH_UTILS_FILE);\n";
|
||||||
stream << "var autoTester = createAutoTester(Script.resolvePath('.'));\n\n";
|
stream << "var nitpick = createAutoTester(Script.resolvePath('.'));\n\n";
|
||||||
stream << "autoTester.enableAuto();\n\n";
|
stream << "nitpick.enableAuto();\n\n";
|
||||||
stream << "Script.include('./test.js?raw=true');\n";
|
stream << "Script.include('./test.js?raw=true');\n";
|
||||||
|
|
||||||
testAutoScriptFile.close();
|
testAutoScriptFile.close();
|
||||||
|
@ -751,29 +751,29 @@ void Test::createRecursiveScript(const QString& topLevelDirectory, bool interact
|
||||||
textStream << "// This is an automatically generated file, created by auto-tester" << endl;
|
textStream << "// This is an automatically generated file, created by auto-tester" << endl;
|
||||||
|
|
||||||
// Include 'autoTest.js'
|
// Include 'autoTest.js'
|
||||||
QString branch = autoTester->getSelectedBranch();
|
QString branch = nitpick->getSelectedBranch();
|
||||||
QString user = autoTester->getSelectedUser();
|
QString user = nitpick->getSelectedUser();
|
||||||
|
|
||||||
textStream << "PATH_TO_THE_REPO_PATH_UTILS_FILE = \"https://raw.githubusercontent.com/" + user + "/hifi_tests/" + branch +
|
textStream << "PATH_TO_THE_REPO_PATH_UTILS_FILE = \"https://raw.githubusercontent.com/" + user + "/hifi_tests/" + branch +
|
||||||
"/tests/utils/branchUtils.js\";"
|
"/tests/utils/branchUtils.js\";"
|
||||||
<< endl;
|
<< endl;
|
||||||
textStream << "Script.include(PATH_TO_THE_REPO_PATH_UTILS_FILE);" << endl;
|
textStream << "Script.include(PATH_TO_THE_REPO_PATH_UTILS_FILE);" << endl;
|
||||||
textStream << "var autoTester = createAutoTester(Script.resolvePath(\".\"));" << endl << endl;
|
textStream << "var nitpick = createAutoTester(Script.resolvePath(\".\"));" << endl << endl;
|
||||||
|
|
||||||
textStream << "var testsRootPath = autoTester.getTestsRootPath();" << endl << endl;
|
textStream << "var testsRootPath = nitpick.getTestsRootPath();" << endl << endl;
|
||||||
|
|
||||||
// Wait 10 seconds before starting
|
// Wait 10 seconds before starting
|
||||||
textStream << "if (typeof Test !== 'undefined') {" << endl;
|
textStream << "if (typeof Test !== 'undefined') {" << endl;
|
||||||
textStream << " Test.wait(10000);" << endl;
|
textStream << " Test.wait(10000);" << endl;
|
||||||
textStream << "};" << endl << endl;
|
textStream << "};" << endl << endl;
|
||||||
|
|
||||||
textStream << "autoTester.enableRecursive();" << endl;
|
textStream << "nitpick.enableRecursive();" << endl;
|
||||||
textStream << "autoTester.enableAuto();" << endl << endl;
|
textStream << "nitpick.enableAuto();" << endl << endl;
|
||||||
|
|
||||||
// This is used to verify that the recursive test contains at least one test
|
// This is used to verify that the recursive test contains at least one test
|
||||||
bool testFound{ false };
|
bool testFound{ false };
|
||||||
|
|
||||||
// Directories are included in reverse order. The autoTester scripts use a stack mechanism,
|
// Directories are included in reverse order. The nitpick scripts use a stack mechanism,
|
||||||
// so this ensures that the tests run in alphabetical order (a convenience when debugging)
|
// so this ensures that the tests run in alphabetical order (a convenience when debugging)
|
||||||
QStringList directories;
|
QStringList directories;
|
||||||
|
|
||||||
|
@ -819,7 +819,7 @@ void Test::createRecursiveScript(const QString& topLevelDirectory, bool interact
|
||||||
}
|
}
|
||||||
|
|
||||||
textStream << endl;
|
textStream << endl;
|
||||||
textStream << "autoTester.runRecursive();" << endl;
|
textStream << "nitpick.runRecursive();" << endl;
|
||||||
|
|
||||||
allTestsFilename.close();
|
allTestsFilename.close();
|
||||||
}
|
}
|
||||||
|
@ -881,7 +881,7 @@ void Test::createTestsOutline() {
|
||||||
// The directory name appears after the last slash (we are assured there is at least 1).
|
// The directory name appears after the last slash (we are assured there is at least 1).
|
||||||
QString directoryName = directory.right(directory.length() - directory.lastIndexOf("/") - 1);
|
QString directoryName = directory.right(directory.length() - directory.lastIndexOf("/") - 1);
|
||||||
|
|
||||||
// autoTester is run on a clone of the repository. We use relative paths, so we can use both local disk and GitHub
|
// nitpick is run on a clone of the repository. We use relative paths, so we can use both local disk and GitHub
|
||||||
// For a test in "D:/GitHub/hifi_tests/tests/content/entity/zone/ambientLightInheritance" the
|
// For a test in "D:/GitHub/hifi_tests/tests/content/entity/zone/ambientLightInheritance" the
|
||||||
// GitHub URL is "./content/entity/zone/ambientLightInheritance?raw=true"
|
// GitHub URL is "./content/entity/zone/ambientLightInheritance?raw=true"
|
||||||
QString partialPath = directory.right(directory.length() - (directory.lastIndexOf("/tests/") + QString("/tests").length() + 1));
|
QString partialPath = directory.right(directory.length() - (directory.lastIndexOf("/tests/") + QString("/tests").length() + 1));
|
||||||
|
@ -937,11 +937,11 @@ void Test::createTestRailTestCases() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_testRailCreateMode == PYTHON) {
|
if (_testRailCreateMode == PYTHON) {
|
||||||
_testRailInterface.createTestSuitePython(_testDirectory, outputDirectory, autoTester->getSelectedUser(),
|
_testRailInterface.createTestSuitePython(_testDirectory, outputDirectory, nitpick->getSelectedUser(),
|
||||||
autoTester->getSelectedBranch());
|
nitpick->getSelectedBranch());
|
||||||
} else {
|
} else {
|
||||||
_testRailInterface.createTestSuiteXML(_testDirectory, outputDirectory, autoTester->getSelectedUser(),
|
_testRailInterface.createTestSuiteXML(_testDirectory, outputDirectory, nitpick->getSelectedUser(),
|
||||||
autoTester->getSelectedBranch());
|
nitpick->getSelectedBranch());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -146,7 +146,7 @@ private:
|
||||||
|
|
||||||
const QString DATETIME_FORMAT{ "yyyy-MM-dd_hh-mm-ss" };
|
const QString DATETIME_FORMAT{ "yyyy-MM-dd_hh-mm-ss" };
|
||||||
|
|
||||||
// NOTE: these need to match the appropriate var's in autoTester.js
|
// NOTE: these need to match the appropriate var's in nitpick.js
|
||||||
// var advanceKey = "n";
|
// var advanceKey = "n";
|
||||||
// var pathSeparator = ".";
|
// var pathSeparator = ".";
|
||||||
const QString ADVANCE_KEY{ "n" };
|
const QString ADVANCE_KEY{ "n" };
|
|
@ -13,8 +13,8 @@
|
||||||
#include <QtWidgets/QMessageBox>
|
#include <QtWidgets/QMessageBox>
|
||||||
#include <QtWidgets/QFileDialog>
|
#include <QtWidgets/QFileDialog>
|
||||||
|
|
||||||
#include "ui/AutoTester.h"
|
#include "ui/Nitpick.h"
|
||||||
extern AutoTester* autoTester;
|
extern Nitpick* nitpick;
|
||||||
|
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
@ -95,7 +95,7 @@ void TestRunner::setWorkingFolder() {
|
||||||
|
|
||||||
_logFile.setFileName(_workingFolder + "/log.txt");
|
_logFile.setFileName(_workingFolder + "/log.txt");
|
||||||
|
|
||||||
autoTester->enableRunTabControls();
|
nitpick->enableRunTabControls();
|
||||||
_workingFolderLabel->setText(QDir::toNativeSeparators(_workingFolder));
|
_workingFolderLabel->setText(QDir::toNativeSeparators(_workingFolder));
|
||||||
|
|
||||||
_timer = new QTimer(this);
|
_timer = new QTimer(this);
|
||||||
|
@ -203,8 +203,8 @@ void TestRunner::run() {
|
||||||
_automatedTestIsRunning = true;
|
_automatedTestIsRunning = true;
|
||||||
|
|
||||||
// Initial setup
|
// Initial setup
|
||||||
_branch = autoTester->getSelectedBranch();
|
_branch = nitpick->getSelectedBranch();
|
||||||
_user = autoTester->getSelectedUser();
|
_user = nitpick->getSelectedUser();
|
||||||
|
|
||||||
// This will be restored at the end of the tests
|
// This will be restored at the end of the tests
|
||||||
saveExistingHighFidelityAppDataFolder();
|
saveExistingHighFidelityAppDataFolder();
|
||||||
|
@ -221,7 +221,7 @@ void TestRunner::run() {
|
||||||
updateStatusLabel("Downloading Build XML");
|
updateStatusLabel("Downloading Build XML");
|
||||||
|
|
||||||
buildXMLDownloaded = false;
|
buildXMLDownloaded = false;
|
||||||
autoTester->downloadFiles(urls, _workingFolder, filenames, (void*)this);
|
nitpick->downloadFiles(urls, _workingFolder, filenames, (void*)this);
|
||||||
|
|
||||||
// `downloadComplete` will run after download has completed
|
// `downloadComplete` will run after download has completed
|
||||||
}
|
}
|
||||||
|
@ -250,7 +250,7 @@ void TestRunner::downloadComplete() {
|
||||||
|
|
||||||
updateStatusLabel("Downloading installer");
|
updateStatusLabel("Downloading installer");
|
||||||
|
|
||||||
autoTester->downloadFiles(urls, _workingFolder, filenames, (void*)this);
|
nitpick->downloadFiles(urls, _workingFolder, filenames, (void*)this);
|
||||||
|
|
||||||
// `downloadComplete` will run again after download has completed
|
// `downloadComplete` will run again after download has completed
|
||||||
|
|
||||||
|
@ -505,7 +505,7 @@ void TestRunner::interfaceExecutionComplete() {
|
||||||
|
|
||||||
void TestRunner::evaluateResults() {
|
void TestRunner::evaluateResults() {
|
||||||
updateStatusLabel("Evaluating results");
|
updateStatusLabel("Evaluating results");
|
||||||
autoTester->startTestsEvaluation(false, true, _snapshotFolder, _branch, _user);
|
nitpick->startTestsEvaluation(false, true, _snapshotFolder, _branch, _user);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TestRunner::automaticTestRunEvaluationComplete(QString zippedFolder, int numberOfFailures) {
|
void TestRunner::automaticTestRunEvaluationComplete(QString zippedFolder, int numberOfFailures) {
|
||||||
|
@ -618,7 +618,7 @@ void TestRunner::checkTime() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void TestRunner::updateStatusLabel(const QString& message) {
|
void TestRunner::updateStatusLabel(const QString& message) {
|
||||||
autoTester->updateStatusLabel(message);
|
nitpick->updateStatusLabel(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TestRunner::appendLog(const QString& message) {
|
void TestRunner::appendLog(const QString& message) {
|
||||||
|
@ -632,7 +632,7 @@ void TestRunner::appendLog(const QString& message) {
|
||||||
_logFile.write("\n");
|
_logFile.write("\n");
|
||||||
_logFile.close();
|
_logFile.close();
|
||||||
|
|
||||||
autoTester->appendLogWindow(message);
|
nitpick->appendLogWindow(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString TestRunner::getInstallerNameFromURL(const QString& url) {
|
QString TestRunner::getInstallerNameFromURL(const QString& url) {
|
|
@ -8,11 +8,11 @@
|
||||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
//
|
//
|
||||||
#include <QtWidgets/QApplication>
|
#include <QtWidgets/QApplication>
|
||||||
#include "ui/AutoTester.h"
|
#include "ui/Nitpick.h"
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
AutoTester* autoTester;
|
Nitpick* nitpick;
|
||||||
|
|
||||||
int main(int argc, char *argv[]) {
|
int main(int argc, char *argv[]) {
|
||||||
// If no parameters then run in interactive mode
|
// If no parameters then run in interactive mode
|
||||||
|
@ -62,13 +62,13 @@ int main(int argc, char *argv[]) {
|
||||||
|
|
||||||
QApplication application(argc, argv);
|
QApplication application(argc, argv);
|
||||||
|
|
||||||
autoTester = new AutoTester();
|
nitpick = new Nitpick();
|
||||||
autoTester->setup();
|
nitpick->setup();
|
||||||
|
|
||||||
if (!testFolder.isNull()) {
|
if (!testFolder.isNull()) {
|
||||||
autoTester->startTestsEvaluation(true ,false, testFolder, branch, user);
|
nitpick->startTestsEvaluation(true ,false, testFolder, branch, user);
|
||||||
} else {
|
} else {
|
||||||
autoTester->show();
|
nitpick->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
return application.exec();
|
return application.exec();
|
|
@ -14,7 +14,7 @@
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>AutoTester Help</string>
|
<string>Nitpick Help</string>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QTextEdit" name="textEdit">
|
<widget class="QTextEdit" name="textEdit">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
|
@ -1,5 +1,5 @@
|
||||||
//
|
//
|
||||||
// AutoTester.cpp
|
// Nitpick.cpp
|
||||||
// zone/ambientLightInheritence
|
// zone/ambientLightInheritence
|
||||||
//
|
//
|
||||||
// Created by Nissim Hadar on 2 Nov 2017.
|
// Created by Nissim Hadar on 2 Nov 2017.
|
||||||
|
@ -8,14 +8,14 @@
|
||||||
// Distributed under the Apache License, Version 2.0.
|
// Distributed under the Apache License, Version 2.0.
|
||||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
//
|
//
|
||||||
#include "AutoTester.h"
|
#include "Nitpick.h"
|
||||||
|
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <shellapi.h>
|
#include <shellapi.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
AutoTester::AutoTester(QWidget* parent) : QMainWindow(parent) {
|
Nitpick::Nitpick(QWidget* parent) : QMainWindow(parent) {
|
||||||
_ui.setupUi(this);
|
_ui.setupUi(this);
|
||||||
|
|
||||||
_ui.checkBoxInteractiveMode->setChecked(true);
|
_ui.checkBoxInteractiveMode->setChecked(true);
|
||||||
|
@ -24,9 +24,9 @@ AutoTester::AutoTester(QWidget* parent) : QMainWindow(parent) {
|
||||||
|
|
||||||
_signalMapper = new QSignalMapper();
|
_signalMapper = new QSignalMapper();
|
||||||
|
|
||||||
connect(_ui.actionClose, &QAction::triggered, this, &AutoTester::on_closeButton_clicked);
|
connect(_ui.actionClose, &QAction::triggered, this, &Nitpick::on_closeButton_clicked);
|
||||||
connect(_ui.actionAbout, &QAction::triggered, this, &AutoTester::about);
|
connect(_ui.actionAbout, &QAction::triggered, this, &Nitpick::about);
|
||||||
connect(_ui.actionContent, &QAction::triggered, this, &AutoTester::content);
|
connect(_ui.actionContent, &QAction::triggered, this, &Nitpick::content);
|
||||||
|
|
||||||
// The second tab hides and shows the Windows task bar
|
// The second tab hides and shows the Windows task bar
|
||||||
#ifndef Q_OS_WIN
|
#ifndef Q_OS_WIN
|
||||||
|
@ -36,13 +36,13 @@ AutoTester::AutoTester(QWidget* parent) : QMainWindow(parent) {
|
||||||
_ui.statusLabel->setText("");
|
_ui.statusLabel->setText("");
|
||||||
_ui.plainTextEdit->setReadOnly(true);
|
_ui.plainTextEdit->setReadOnly(true);
|
||||||
|
|
||||||
setWindowTitle("Auto Tester - v7.0");
|
setWindowTitle("Nitpick - v1.0");
|
||||||
|
|
||||||
// Coming soon to an auto-tester near you...
|
// Coming soon to a nitpick near you...
|
||||||
//// _helpWindow.textBrowser->setText()
|
//// _helpWindow.textBrowser->setText()
|
||||||
}
|
}
|
||||||
|
|
||||||
AutoTester::~AutoTester() {
|
Nitpick::~Nitpick() {
|
||||||
delete _signalMapper;
|
delete _signalMapper;
|
||||||
|
|
||||||
if (_test) {
|
if (_test) {
|
||||||
|
@ -54,7 +54,7 @@ AutoTester::~AutoTester() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::setup() {
|
void Nitpick::setup() {
|
||||||
if (_test) {
|
if (_test) {
|
||||||
delete _test;
|
delete _test;
|
||||||
}
|
}
|
||||||
|
@ -87,7 +87,7 @@ void AutoTester::setup() {
|
||||||
_testRunner = new TestRunner(dayCheckboxes, timeEditCheckboxes, timeEdits, _ui.workingFolderLabel, _ui.checkBoxServerless, _ui.checkBoxRunLatest, _ui.urlLineEdit, _ui.runNowButton);
|
_testRunner = new TestRunner(dayCheckboxes, timeEditCheckboxes, timeEdits, _ui.workingFolderLabel, _ui.checkBoxServerless, _ui.checkBoxRunLatest, _ui.urlLineEdit, _ui.runNowButton);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::startTestsEvaluation(const bool isRunningFromCommandLine,
|
void Nitpick::startTestsEvaluation(const bool isRunningFromCommandLine,
|
||||||
const bool isRunningInAutomaticTestRun,
|
const bool isRunningInAutomaticTestRun,
|
||||||
const QString& snapshotDirectory,
|
const QString& snapshotDirectory,
|
||||||
const QString& branch,
|
const QString& branch,
|
||||||
|
@ -96,7 +96,7 @@ void AutoTester::startTestsEvaluation(const bool isRunningFromCommandLine,
|
||||||
_test->startTestsEvaluation(isRunningFromCommandLine, isRunningInAutomaticTestRun, snapshotDirectory, branch, user);
|
_test->startTestsEvaluation(isRunningFromCommandLine, isRunningInAutomaticTestRun, snapshotDirectory, branch, user);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::on_tabWidget_currentChanged(int index) {
|
void Nitpick::on_tabWidget_currentChanged(int index) {
|
||||||
if (index == 0 || index == 2 || index == 3) {
|
if (index == 0 || index == 2 || index == 3) {
|
||||||
_ui.userLineEdit->setDisabled(false);
|
_ui.userLineEdit->setDisabled(false);
|
||||||
_ui.branchLineEdit->setDisabled(false);
|
_ui.branchLineEdit->setDisabled(false);
|
||||||
|
@ -106,73 +106,73 @@ void AutoTester::on_tabWidget_currentChanged(int index) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::on_evaluateTestsButton_clicked() {
|
void Nitpick::on_evaluateTestsButton_clicked() {
|
||||||
_test->startTestsEvaluation(false, false);
|
_test->startTestsEvaluation(false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::on_createRecursiveScriptButton_clicked() {
|
void Nitpick::on_createRecursiveScriptButton_clicked() {
|
||||||
_test->createRecursiveScript();
|
_test->createRecursiveScript();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::on_createAllRecursiveScriptsButton_clicked() {
|
void Nitpick::on_createAllRecursiveScriptsButton_clicked() {
|
||||||
_test->createAllRecursiveScripts();
|
_test->createAllRecursiveScripts();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::on_createTestsButton_clicked() {
|
void Nitpick::on_createTestsButton_clicked() {
|
||||||
_test->createTests();
|
_test->createTests();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::on_createMDFileButton_clicked() {
|
void Nitpick::on_createMDFileButton_clicked() {
|
||||||
_test->createMDFile();
|
_test->createMDFile();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::on_createAllMDFilesButton_clicked() {
|
void Nitpick::on_createAllMDFilesButton_clicked() {
|
||||||
_test->createAllMDFiles();
|
_test->createAllMDFiles();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::on_createTestAutoScriptButton_clicked() {
|
void Nitpick::on_createTestAutoScriptButton_clicked() {
|
||||||
_test->createTestAutoScript();
|
_test->createTestAutoScript();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::on_createAllTestAutoScriptsButton_clicked() {
|
void Nitpick::on_createAllTestAutoScriptsButton_clicked() {
|
||||||
_test->createAllTestAutoScripts();
|
_test->createAllTestAutoScripts();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::on_createTestsOutlineButton_clicked() {
|
void Nitpick::on_createTestsOutlineButton_clicked() {
|
||||||
_test->createTestsOutline();
|
_test->createTestsOutline();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::on_createTestRailTestCasesButton_clicked() {
|
void Nitpick::on_createTestRailTestCasesButton_clicked() {
|
||||||
_test->createTestRailTestCases();
|
_test->createTestRailTestCases();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::on_createTestRailRunButton_clicked() {
|
void Nitpick::on_createTestRailRunButton_clicked() {
|
||||||
_test->createTestRailRun();
|
_test->createTestRailRun();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::on_setWorkingFolderButton_clicked() {
|
void Nitpick::on_setWorkingFolderButton_clicked() {
|
||||||
_testRunner->setWorkingFolder();
|
_testRunner->setWorkingFolder();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::enableRunTabControls() {
|
void Nitpick::enableRunTabControls() {
|
||||||
_ui.runNowButton->setEnabled(true);
|
_ui.runNowButton->setEnabled(true);
|
||||||
_ui.daysGroupBox->setEnabled(true);
|
_ui.daysGroupBox->setEnabled(true);
|
||||||
_ui.timesGroupBox->setEnabled(true);
|
_ui.timesGroupBox->setEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::on_runNowButton_clicked() {
|
void Nitpick::on_runNowButton_clicked() {
|
||||||
_testRunner->run();
|
_testRunner->run();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::on_checkBoxRunLatest_clicked() {
|
void Nitpick::on_checkBoxRunLatest_clicked() {
|
||||||
_ui.urlLineEdit->setEnabled(!_ui.checkBoxRunLatest->isChecked());
|
_ui.urlLineEdit->setEnabled(!_ui.checkBoxRunLatest->isChecked());
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::automaticTestRunEvaluationComplete(QString zippedFolderName, int numberOfFailures) {
|
void Nitpick::automaticTestRunEvaluationComplete(QString zippedFolderName, int numberOfFailures) {
|
||||||
_testRunner->automaticTestRunEvaluationComplete(zippedFolderName, numberOfFailures);
|
_testRunner->automaticTestRunEvaluationComplete(zippedFolderName, numberOfFailures);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::on_updateTestRailRunResultsButton_clicked() {
|
void Nitpick::on_updateTestRailRunResultsButton_clicked() {
|
||||||
_test->updateTestRailRunResult();
|
_test->updateTestRailRunResult();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -180,7 +180,7 @@ void AutoTester::on_updateTestRailRunResultsButton_clicked() {
|
||||||
// if (uState & ABS_AUTOHIDE) on_showTaskbarButton_clicked();
|
// if (uState & ABS_AUTOHIDE) on_showTaskbarButton_clicked();
|
||||||
// else on_hideTaskbarButton_clicked();
|
// else on_hideTaskbarButton_clicked();
|
||||||
//
|
//
|
||||||
void AutoTester::on_hideTaskbarButton_clicked() {
|
void Nitpick::on_hideTaskbarButton_clicked() {
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
APPBARDATA abd = { sizeof abd };
|
APPBARDATA abd = { sizeof abd };
|
||||||
UINT uState = (UINT)SHAppBarMessage(ABM_GETSTATE, &abd);
|
UINT uState = (UINT)SHAppBarMessage(ABM_GETSTATE, &abd);
|
||||||
|
@ -190,7 +190,7 @@ void AutoTester::on_hideTaskbarButton_clicked() {
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::on_showTaskbarButton_clicked() {
|
void Nitpick::on_showTaskbarButton_clicked() {
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
APPBARDATA abd = { sizeof abd };
|
APPBARDATA abd = { sizeof abd };
|
||||||
UINT uState = (UINT)SHAppBarMessage(ABM_GETSTATE, &abd);
|
UINT uState = (UINT)SHAppBarMessage(ABM_GETSTATE, &abd);
|
||||||
|
@ -200,23 +200,23 @@ void AutoTester::on_showTaskbarButton_clicked() {
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::on_closeButton_clicked() {
|
void Nitpick::on_closeButton_clicked() {
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::on_createPythonScriptRadioButton_clicked() {
|
void Nitpick::on_createPythonScriptRadioButton_clicked() {
|
||||||
_test->setTestRailCreateMode(PYTHON);
|
_test->setTestRailCreateMode(PYTHON);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::on_createXMLScriptRadioButton_clicked() {
|
void Nitpick::on_createXMLScriptRadioButton_clicked() {
|
||||||
_test->setTestRailCreateMode(XML);
|
_test->setTestRailCreateMode(XML);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::on_createWebPagePushButton_clicked() {
|
void Nitpick::on_createWebPagePushButton_clicked() {
|
||||||
_test->createWebPage(_ui.updateAWSCheckBox, _ui.awsURLLineEdit);
|
_test->createWebPage(_ui.updateAWSCheckBox, _ui.awsURLLineEdit);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::downloadFile(const QUrl& url) {
|
void Nitpick::downloadFile(const QUrl& url) {
|
||||||
_downloaders.emplace_back(new Downloader(url, this));
|
_downloaders.emplace_back(new Downloader(url, this));
|
||||||
connect(_downloaders[_index], SIGNAL(downloaded()), _signalMapper, SLOT(map()));
|
connect(_downloaders[_index], SIGNAL(downloaded()), _signalMapper, SLOT(map()));
|
||||||
|
|
||||||
|
@ -225,7 +225,7 @@ void AutoTester::downloadFile(const QUrl& url) {
|
||||||
++_index;
|
++_index;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::downloadFiles(const QStringList& URLs, const QString& directoryName, const QStringList& filenames, void *caller) {
|
void Nitpick::downloadFiles(const QStringList& URLs, const QString& directoryName, const QStringList& filenames, void *caller) {
|
||||||
connect(_signalMapper, SIGNAL(mapped(int)), this, SLOT(saveFile(int)));
|
connect(_signalMapper, SIGNAL(mapped(int)), this, SLOT(saveFile(int)));
|
||||||
|
|
||||||
_directoryName = directoryName;
|
_directoryName = directoryName;
|
||||||
|
@ -251,7 +251,7 @@ void AutoTester::downloadFiles(const QStringList& URLs, const QString& directory
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::saveFile(int index) {
|
void Nitpick::saveFile(int index) {
|
||||||
try {
|
try {
|
||||||
QFile file(_directoryName + "/" + _filenames[index]);
|
QFile file(_directoryName + "/" + _filenames[index]);
|
||||||
file.open(QIODevice::WriteOnly);
|
file.open(QIODevice::WriteOnly);
|
||||||
|
@ -277,34 +277,34 @@ void AutoTester::saveFile(int index) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::about() {
|
void Nitpick::about() {
|
||||||
QMessageBox::information(0, "About", QString("Built ") + __DATE__ + ", " + __TIME__);
|
QMessageBox::information(0, "About", QString("Built ") + __DATE__ + ", " + __TIME__);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::content() {
|
void Nitpick::content() {
|
||||||
_helpWindow.show();
|
_helpWindow.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::setUserText(const QString& user) {
|
void Nitpick::setUserText(const QString& user) {
|
||||||
_ui.userLineEdit->setText(user);
|
_ui.userLineEdit->setText(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString AutoTester::getSelectedUser() {
|
QString Nitpick::getSelectedUser() {
|
||||||
return _ui.userLineEdit->text();
|
return _ui.userLineEdit->text();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::setBranchText(const QString& branch) {
|
void Nitpick::setBranchText(const QString& branch) {
|
||||||
_ui.branchLineEdit->setText(branch);
|
_ui.branchLineEdit->setText(branch);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString AutoTester::getSelectedBranch() {
|
QString Nitpick::getSelectedBranch() {
|
||||||
return _ui.branchLineEdit->text();
|
return _ui.branchLineEdit->text();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::updateStatusLabel(const QString& status) {
|
void Nitpick::updateStatusLabel(const QString& status) {
|
||||||
_ui.statusLabel->setText(status);
|
_ui.statusLabel->setText(status);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTester::appendLogWindow(const QString& message) {
|
void Nitpick::appendLogWindow(const QString& message) {
|
||||||
_ui.plainTextEdit->appendPlainText(message);
|
_ui.plainTextEdit->appendPlainText(message);
|
||||||
}
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
//
|
//
|
||||||
// AutoTester.h
|
// Nitpick.h
|
||||||
//
|
//
|
||||||
// Created by Nissim Hadar on 2 Nov 2017.
|
// Created by Nissim Hadar on 2 Nov 2017.
|
||||||
// Copyright 2013 High Fidelity, Inc.
|
// Copyright 2013 High Fidelity, Inc.
|
||||||
|
@ -7,13 +7,13 @@
|
||||||
// Distributed under the Apache License, Version 2.0.
|
// Distributed under the Apache License, Version 2.0.
|
||||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
//
|
//
|
||||||
#ifndef hifi_AutoTester_h
|
#ifndef hifi_Nitpick_h
|
||||||
#define hifi_AutoTester_h
|
#define hifi_Nitpick_h
|
||||||
|
|
||||||
#include <QtWidgets/QMainWindow>
|
#include <QtWidgets/QMainWindow>
|
||||||
#include <QSignalMapper>
|
#include <QSignalMapper>
|
||||||
#include <QTextEdit>
|
#include <QTextEdit>
|
||||||
#include "ui_AutoTester.h"
|
#include "ui_Nitpick.h"
|
||||||
|
|
||||||
#include "../Downloader.h"
|
#include "../Downloader.h"
|
||||||
#include "../Test.h"
|
#include "../Test.h"
|
||||||
|
@ -22,12 +22,12 @@
|
||||||
#include "../TestRunner.h"
|
#include "../TestRunner.h"
|
||||||
#include "../AWSInterface.h"
|
#include "../AWSInterface.h"
|
||||||
|
|
||||||
class AutoTester : public QMainWindow {
|
class Nitpick : public QMainWindow {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
AutoTester(QWidget* parent = Q_NULLPTR);
|
Nitpick(QWidget* parent = Q_NULLPTR);
|
||||||
~AutoTester();
|
~Nitpick();
|
||||||
|
|
||||||
void setup();
|
void setup();
|
||||||
|
|
||||||
|
@ -95,7 +95,7 @@ private slots:
|
||||||
void content();
|
void content();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::AutoTesterClass _ui;
|
Ui::NitpickClass _ui;
|
||||||
Test* _test{ nullptr };
|
Test* _test{ nullptr };
|
||||||
TestRunner* _testRunner{ nullptr };
|
TestRunner* _testRunner{ nullptr };
|
||||||
|
|
||||||
|
@ -121,4 +121,4 @@ private:
|
||||||
void* _caller;
|
void* _caller;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // hifi_AutoTester_h
|
#endif // hifi_Nitpick_h
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
<class>AutoTesterClass</class>
|
<class>NitpickClass</class>
|
||||||
<widget class="QMainWindow" name="AutoTesterClass">
|
<widget class="QMainWindow" name="NitpickClass">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>AutoTester</string>
|
<string>Nitpick</string>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="centralWidget">
|
<widget class="QWidget" name="centralWidget">
|
||||||
<widget class="QPushButton" name="closeButton">
|
<widget class="QPushButton" name="closeButton">
|