сравнение с эталоном начальная версия
v++
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package _VisualDVM.TestingSystem.SAPFOR;
|
||||
import Common.CommonConstants;
|
||||
import Common.Utils.TextLog;
|
||||
import Common.Utils.Utils_;
|
||||
import _VisualDVM.*;
|
||||
import _VisualDVM.ProjectData.LanguageName;
|
||||
@@ -12,6 +13,8 @@ import _VisualDVM.TestingSystem.SAPFOR.Json.SapforConfiguration_json;
|
||||
import _VisualDVM.TestingSystem.SAPFOR.Json.SapforTest_json;
|
||||
import _VisualDVM.TestingSystem.SAPFOR.Json.SapforTestingSet_json;
|
||||
import _VisualDVM.TestingSystem.SAPFOR.SapforPackage.SapforPackage;
|
||||
import _VisualDVM.TestingSystem.SAPFOR.SapforTask.ComparisonState;
|
||||
import _VisualDVM.TestingSystem.SAPFOR.SapforTask.SapforTask;
|
||||
import _VisualDVM.TestingSystem.SAPFOR.ServerSapfor.ServerSapfor;
|
||||
import _VisualDVM.TestingSystem.SAPFOR.ServerSapfor.ServerSapforState;
|
||||
import javafx.util.Pair;
|
||||
@@ -148,8 +151,52 @@ public class SapforTestingPlanner extends TestingPlanner<SapforPackage> {
|
||||
//не требуется.
|
||||
testingPackage.progress = 100;
|
||||
testingPackage.checkFinishState();
|
||||
//--для эталона
|
||||
if (testingPackage.ethalon_id != CommonConstants.Nan) {
|
||||
TextLog log = new TextLog();
|
||||
try {
|
||||
CheckEthalon(log);
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
log.Writeln_("При сравнении с эталоном возникло исключение:");
|
||||
log.Writeln_(ex.getMessage());
|
||||
} finally {
|
||||
if (!log.isEmpty())
|
||||
testingPackage.description += "\n" + log.text;
|
||||
}
|
||||
}
|
||||
UpdatePackageState();
|
||||
}
|
||||
protected void CheckEthalon(TextLog log) throws Exception {
|
||||
Print("эталон = " + testingPackage.ethalon_id);
|
||||
SapforPackage ethalon = (SapforPackage) ServerCommand(ServerCode.GetObjectCopyByPK, "", new Pair<>(SapforPackage.class, testingPackage.ethalon_id));
|
||||
if (ethalon != null) {
|
||||
Print("найден эталон " + testingPackage.ethalon_id);
|
||||
ethalon.readJson();
|
||||
Print("задач в эталоне: " + ethalon.package_json.tasks.size());
|
||||
Print("задач в пакете: " + testingPackage.package_json.tasks.size());
|
||||
if (ethalon.canCompare(testingPackage, log)) {
|
||||
Print("сравнение...");
|
||||
//--
|
||||
testingPackage.package_json.getVersionsFiles(testingPackage);
|
||||
ethalon.package_json.getVersionsFiles(ethalon);
|
||||
//--
|
||||
for (SapforTask task1 : ethalon.package_json.tasks) {
|
||||
SapforTask task2 = testingPackage.package_json.getTaskByKey(task1.getUniqueKey());
|
||||
task1.checkMatchServer(task2); //тексты сравниваются просто посимвольно.
|
||||
if (task1.comparisonState.equals(ComparisonState.NotMatch)) {
|
||||
testingPackage.mismatchesCount++;
|
||||
}
|
||||
}
|
||||
Print("сравнение завершено");
|
||||
testingPackage.description += "\nРазличий с эталоном: " + testingPackage.mismatchesCount;
|
||||
return;
|
||||
} else {
|
||||
Print("сравнение с эталоном невозможно");
|
||||
testingPackage.description += ("\nCравнение с эталоном невозможно:\n" + log.text);
|
||||
}
|
||||
}
|
||||
}
|
||||
@Override
|
||||
protected void Kill() throws Exception {
|
||||
File workspace = testingPackage.getLocalWorkspace();
|
||||
|
||||
Reference in New Issue
Block a user