сравнение с эталоном начальная версия

v++
This commit is contained in:
2024-11-22 02:54:17 +03:00
parent d5b6d9dd55
commit f66790f67a
12 changed files with 199 additions and 34 deletions

View File

@@ -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();