|
|
@@ -0,0 +1,1174 @@
|
|
|
+{
|
|
|
+ "backend": {
|
|
|
+ "classes": 328,
|
|
|
+ "tests": 2753,
|
|
|
+ "failures": 104,
|
|
|
+ "errors": 11,
|
|
|
+ "skipped": 4,
|
|
|
+ "time": 3084.024000000004,
|
|
|
+ "passed": 2634,
|
|
|
+ "pass_rate": 95.68,
|
|
|
+ "pass_rate_ex_env": 95.68,
|
|
|
+ "red_classes": 31,
|
|
|
+ "red_cases": 115,
|
|
|
+ "env_red_cases": 0,
|
|
|
+ "nonenv_red_cases": 115,
|
|
|
+ "time_sum_s": 3084.0,
|
|
|
+ "reds": [
|
|
|
+ {
|
|
|
+ "class": "GuheEvidenceIsolateContractTest",
|
|
|
+ "F": 11,
|
|
|
+ "E": 0,
|
|
|
+ "env": false,
|
|
|
+ "tests": 12
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheNoPathMapContractTest",
|
|
|
+ "F": 10,
|
|
|
+ "E": 0,
|
|
|
+ "env": false,
|
|
|
+ "tests": 10
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheKbVersionSenseContractTest",
|
|
|
+ "F": 9,
|
|
|
+ "E": 0,
|
|
|
+ "env": false,
|
|
|
+ "tests": 11
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "CfCommissionServiceSettleTest",
|
|
|
+ "F": 8,
|
|
|
+ "E": 0,
|
|
|
+ "env": false,
|
|
|
+ "tests": 12
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "EnergySystemFlowTest",
|
|
|
+ "F": 6,
|
|
|
+ "E": 0,
|
|
|
+ "env": false,
|
|
|
+ "tests": 7
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheV2RouteContractTest",
|
|
|
+ "F": 6,
|
|
|
+ "E": 0,
|
|
|
+ "env": false,
|
|
|
+ "tests": 8
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "PlannerBindInviteFlowTest",
|
|
|
+ "F": 4,
|
|
|
+ "E": 1,
|
|
|
+ "env": false,
|
|
|
+ "tests": 9
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheGateStrainBlockContractTest",
|
|
|
+ "F": 5,
|
|
|
+ "E": 0,
|
|
|
+ "env": false,
|
|
|
+ "tests": 6
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheLowSideAggregateContractTest",
|
|
|
+ "F": 5,
|
|
|
+ "E": 0,
|
|
|
+ "env": false,
|
|
|
+ "tests": 6
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheShellGuardContractTest",
|
|
|
+ "F": 5,
|
|
|
+ "E": 0,
|
|
|
+ "env": false,
|
|
|
+ "tests": 7
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "DimensionScoreServiceImplTest",
|
|
|
+ "F": 0,
|
|
|
+ "E": 4,
|
|
|
+ "env": false,
|
|
|
+ "tests": 6
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "ArticleAutoTagServiceTest",
|
|
|
+ "F": 4,
|
|
|
+ "E": 0,
|
|
|
+ "env": false,
|
|
|
+ "tests": 8
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheLowSideNoSupplementContractTest",
|
|
|
+ "F": 4,
|
|
|
+ "E": 0,
|
|
|
+ "env": false,
|
|
|
+ "tests": 6
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuhePageTailCleanContractTest",
|
|
|
+ "F": 4,
|
|
|
+ "E": 0,
|
|
|
+ "env": false,
|
|
|
+ "tests": 6
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheVersionSplitContractTest",
|
|
|
+ "F": 4,
|
|
|
+ "E": 0,
|
|
|
+ "env": false,
|
|
|
+ "tests": 5
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "DimensionRegistryMapContractTest",
|
|
|
+ "F": 3,
|
|
|
+ "E": 0,
|
|
|
+ "env": false,
|
|
|
+ "tests": 7
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GrowthRecordSyncFlowTest",
|
|
|
+ "F": 1,
|
|
|
+ "E": 2,
|
|
|
+ "env": false,
|
|
|
+ "tests": 10
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "ArticleWorkflowTest",
|
|
|
+ "F": 3,
|
|
|
+ "E": 0,
|
|
|
+ "env": false,
|
|
|
+ "tests": 14
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheKbFieldExposeContractTest",
|
|
|
+ "F": 3,
|
|
|
+ "E": 0,
|
|
|
+ "env": false,
|
|
|
+ "tests": 6
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "ServiceRoleApproveTest",
|
|
|
+ "F": 0,
|
|
|
+ "E": 2,
|
|
|
+ "env": false,
|
|
|
+ "tests": 6
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "MindFortuneControllerTest",
|
|
|
+ "F": 1,
|
|
|
+ "E": 0,
|
|
|
+ "env": false,
|
|
|
+ "tests": 1
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "DailyCheckinStreakFlowTest",
|
|
|
+ "F": 0,
|
|
|
+ "E": 1,
|
|
|
+ "env": false,
|
|
|
+ "tests": 6
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuideModuleIntegrationTest",
|
|
|
+ "F": 0,
|
|
|
+ "E": 1,
|
|
|
+ "env": false,
|
|
|
+ "tests": 4
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "OrchestrationEngineTest",
|
|
|
+ "F": 1,
|
|
|
+ "E": 0,
|
|
|
+ "env": false,
|
|
|
+ "tests": 8
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "OrchestrationIntegrationTest",
|
|
|
+ "F": 1,
|
|
|
+ "E": 0,
|
|
|
+ "env": false,
|
|
|
+ "tests": 7
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "MembershipPaySwitchTest",
|
|
|
+ "F": 1,
|
|
|
+ "E": 0,
|
|
|
+ "env": false,
|
|
|
+ "tests": 6
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "PaymentServiceORDRoutingTest",
|
|
|
+ "F": 1,
|
|
|
+ "E": 0,
|
|
|
+ "env": false,
|
|
|
+ "tests": 3
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "UserServiceWechatLoginContractTest",
|
|
|
+ "F": 1,
|
|
|
+ "E": 0,
|
|
|
+ "env": false,
|
|
|
+ "tests": 6
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "UserServiceWechatLoginTest",
|
|
|
+ "F": 1,
|
|
|
+ "E": 0,
|
|
|
+ "env": false,
|
|
|
+ "tests": 5
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "TaskPlanServiceTest",
|
|
|
+ "F": 1,
|
|
|
+ "E": 0,
|
|
|
+ "env": false,
|
|
|
+ "tests": 4
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "TeamProfitCronContractTest",
|
|
|
+ "F": 1,
|
|
|
+ "E": 0,
|
|
|
+ "env": false,
|
|
|
+ "tests": 22
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ "attr": [
|
|
|
+ {
|
|
|
+ "class": "MindFortuneControllerTest",
|
|
|
+ "case": "testGetTodayFortuneWithoutAuth",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionError",
|
|
|
+ "msg": "JSON path \"$.code\" expected:<401> but was:<400>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "DimensionRegistryMapContractTest",
|
|
|
+ "case": "map_unknownLegacy_returnsNullData",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionError",
|
|
|
+ "msg": "JSON path \"$.data\"\nExpected: null\n but: was \"unknown_legacy_xyz\"",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "DimensionRegistryMapContractTest",
|
|
|
+ "case": "map_emptyLegacy_returnsNullData",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionError",
|
|
|
+ "msg": "JSON path \"$.data\"\nExpected: null\n but: was \"\"",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "DimensionRegistryMapContractTest",
|
|
|
+ "case": "map_missingLegacy_returnsBadRequest",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionError",
|
|
|
+ "msg": "Status expected:<400> but was:<200>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "DailyCheckinStreakFlowTest",
|
|
|
+ "case": "childDeletesCheckin_Success",
|
|
|
+ "kind": "E",
|
|
|
+ "type": "MockitoException",
|
|
|
+ "msg": "Only void methods can doNothing()!\nExample of correct use of doNothing():\n doNothing().\n doThrow(new RuntimeException())\n .when(mock).someVoidMethod();\nAbove means:\nsomeVoidMethod() does noth",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "EnergySystemFlowTest",
|
|
|
+ "case": "parentQueriesEnergyLogs_Success",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "expected: <200> but was: <500>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "EnergySystemFlowTest",
|
|
|
+ "case": "childExchangesWishWithEnergy_Success",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "expected: <200> but was: <500>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "EnergySystemFlowTest",
|
|
|
+ "case": "childExchangesWithInsufficientEnergy_Fails",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "expected: <true> but was: <false>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "EnergySystemFlowTest",
|
|
|
+ "case": "userWithoutFamily_Fails",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "expected: <500> but was: <5001>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "EnergySystemFlowTest",
|
|
|
+ "case": "parentGetsEnergyOverview_Success",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "expected: <200> but was: <500>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "EnergySystemFlowTest",
|
|
|
+ "case": "taskCompletionGrantsEnergy_Success",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "expected: <200> but was: <500>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GrowthRecordSyncFlowTest",
|
|
|
+ "case": "parentUploadsHealthReport_Success",
|
|
|
+ "kind": "E",
|
|
|
+ "type": "NullPointerException",
|
|
|
+ "msg": "java.lang.NullPointerException",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GrowthRecordSyncFlowTest",
|
|
|
+ "case": "parentCreatesRecordWithoutChild_Fails",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "expected: <true> but was: <false>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GrowthRecordSyncFlowTest",
|
|
|
+ "case": "parentCreatesRecordWithOrder_Success",
|
|
|
+ "kind": "E",
|
|
|
+ "type": "NullPointerException",
|
|
|
+ "msg": "java.lang.NullPointerException",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuideModuleIntegrationTest",
|
|
|
+ "case": "testGuidePackageCreationFlow",
|
|
|
+ "kind": "E",
|
|
|
+ "type": "DataIntegrityViolationException",
|
|
|
+ "msg": "### Error updating database. Cause: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Out of range value for column 'platform_fee' at row 1\n### The error may exist in com/etotem/cfc/",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "PlannerBindInviteFlowTest",
|
|
|
+ "case": "parentConfirmsBind_Success",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "expected: <200> but was: <403>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "PlannerBindInviteFlowTest",
|
|
|
+ "case": "guideViewsBoundFamilies_Success",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "expected: not <null>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "PlannerBindInviteFlowTest",
|
|
|
+ "case": "parentBindsSameGuideTwice_Fails",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "expected: <400> but was: <403>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "PlannerBindInviteFlowTest",
|
|
|
+ "case": "parentUnbindsGuide_Success",
|
|
|
+ "kind": "E",
|
|
|
+ "type": "MockitoException",
|
|
|
+ "msg": "Only void methods can doNothing()!\nExample of correct use of doNothing():\n doNothing().\n doThrow(new RuntimeException())\n .when(mock).someVoidMethod();\nAbove means:\nsomeVoidMethod() does noth",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "PlannerBindInviteFlowTest",
|
|
|
+ "case": "completeInviteBindFlow_Success",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "expected: <200> but was: <403>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "OrchestrationEngineTest",
|
|
|
+ "case": "testOnTaskFailed_FoundNode_ThenMarkFailedAndEvaluateFlow",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "expected: \"manual_fail\"\n but was: null",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "OrchestrationIntegrationTest",
|
|
|
+ "case": "testEvaluateFlow_AndNode_AllCompleted_Triggered",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionError",
|
|
|
+ "msg": "Expecting actual:\n \"failed\"\nto be in:\n [\"in_progress\", \"pending\"]",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "ArticleWorkflowTest",
|
|
|
+ "case": "reDraft_notRejected_pending",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "expected: <仅已驳回的文章可重新编辑> but was: <仅已驳回或已撤回的文章可重新编辑>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "ArticleWorkflowTest",
|
|
|
+ "case": "reDraft_notRejected_draft",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "expected: <仅已驳回的文章可重新编辑> but was: <仅已驳回或已撤回的文章可重新编辑>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "ArticleWorkflowTest",
|
|
|
+ "case": "reDraft_notRejected_published",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "expected: <仅已驳回的文章可重新编辑> but was: <仅已驳回或已撤回的文章可重新编辑>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "CfCommissionServiceSettleTest",
|
|
|
+ "case": "settle_F03a发放_自动创建感恩记录",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "WantedButNotInvoked",
|
|
|
+ "msg": "Wanted but not invoked:\noctopusEffectRecordMapper.insert(<any>);\n-> at com.etotem.cfc.service.CfCommissionServiceSettleTest.settle_F03a发放_自动创建感恩记录(CfCommissionServiceSettleTest.java:419)\nActually, the",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "CfCommissionServiceSettleTest",
|
|
|
+ "case": "settle_同家庭引荐人跳过_顺延到下一级拿F03a",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "WantedButNotInvoked",
|
|
|
+ "msg": "Wanted but not invoked:\ncfBalanceService.earnByRule(\n 1020L,\n \"F03a\",\n 1L,\n <any>\n);\n-> at com.etotem.cfc.service.CfCommissionServiceSettleTest.settle_同家庭引荐人跳过_顺延到下一级拿F03a(CfCommissionServ",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "CfCommissionServiceSettleTest",
|
|
|
+ "case": "settle_商品订单实付与分润基数分离",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "WantedButNotInvoked",
|
|
|
+ "msg": "Wanted but not invoked:\ncfBalanceService.earnByRule(\n 1010L,\n \"F03a\",\n 1L,\n <Capturing argument>\n);\n-> at com.etotem.cfc.service.CfCommissionServiceSettleTest.settle_商品订单实付与分润基数分离(CfCommis",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "CfCommissionServiceSettleTest",
|
|
|
+ "case": "settle_两级销售奖_F03a按团队档位_F03b按自身档位",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "WantedButNotInvoked",
|
|
|
+ "msg": "Wanted but not invoked:\ncfBalanceService.earnByRule(\n 1010L,\n \"F03a\",\n 1L,\n <Capturing argument>\n);\n-> at com.etotem.cfc.service.CfCommissionServiceSettleTest.settle_两级销售奖_F03a按团队档位_F03b按自",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "CfCommissionServiceSettleTest",
|
|
|
+ "case": "settle_档位比例超规则上限_按上限封顶",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "WantedButNotInvoked",
|
|
|
+ "msg": "Wanted but not invoked:\ncfBalanceService.earnByRule(\n 1010L,\n \"F03a\",\n 1L,\n <Capturing argument>\n);\n-> at com.etotem.cfc.service.CfCommissionServiceSettleTest.settle_档位比例超规则上限_按上限封顶(CfComm",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "CfCommissionServiceSettleTest",
|
|
|
+ "case": "settle_落P点消费日志_基数与订单对应",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "WantedButNotInvoked",
|
|
|
+ "msg": "Wanted but not invoked:\nppointConsumptionLogMapper.insert(\n <Capturing argument>\n);\n-> at com.etotem.cfc.service.CfCommissionServiceSettleTest.settle_落P点消费日志_基数与订单对应(CfCommissionServiceSettleTest.j",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "CfCommissionServiceSettleTest",
|
|
|
+ "case": "settle_最多两级_第三级引荐人不发放",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "WantedButNotInvoked",
|
|
|
+ "msg": "Wanted but not invoked:\ncfBalanceService.earnByRule(\n 1010L,\n \"F03a\",\n 1L,\n <any>\n);\n-> at com.etotem.cfc.service.CfCommissionServiceSettleTest.settle_最多两级_第三级引荐人不发放(CfCommissionServiceSet",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "CfCommissionServiceSettleTest",
|
|
|
+ "case": "settle_推荐人分润只走earnByRule_不再写旧分佣流水",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "WantedButNotInvoked",
|
|
|
+ "msg": "Wanted but not invoked:\ncfBalanceService.earnByRule(\n <any long>,\n <any string>,\n <any long>,\n <any>\n);\n-> at com.etotem.cfc.service.CfCommissionServiceSettleTest.settle_推荐人分润只走earnByRule_",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "DimensionScoreServiceImplTest",
|
|
|
+ "case": "getHealthDimension_trendUp_whenScoreIncreasedBy5OrMore",
|
|
|
+ "kind": "E",
|
|
|
+ "type": "NoSuchElementException",
|
|
|
+ "msg": "No value present",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "DimensionScoreServiceImplTest",
|
|
|
+ "case": "getHealthDimension_trendStable_whenNoHistory",
|
|
|
+ "kind": "E",
|
|
|
+ "type": "NoSuchElementException",
|
|
|
+ "msg": "No value present",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "DimensionScoreServiceImplTest",
|
|
|
+ "case": "getHealthDimension_trendDown_whenScoreDecreasedBy5OrMore",
|
|
|
+ "kind": "E",
|
|
|
+ "type": "NoSuchElementException",
|
|
|
+ "msg": "No value present",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "DimensionScoreServiceImplTest",
|
|
|
+ "case": "getHealthDimension_trendStable_whenScoreChangeLessThan5",
|
|
|
+ "kind": "E",
|
|
|
+ "type": "NoSuchElementException",
|
|
|
+ "msg": "No value present",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "MembershipPaySwitchTest",
|
|
|
+ "case": "createOrderWithPayType_virtualEnabled_configMissing_returnsNull",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "expected: <null> but was: <{levelCode=FAMILY, amount=131400, orderNo=ORD17941626330060059610, payType=wechat, wechatPayParams={}, groupNo=null, totalPeriods=1, status=pending, periodNo=1}>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "PaymentServiceORDRoutingTest",
|
|
|
+ "case": "unknownPrefix_routesToHandlePaymentCallback",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "expected: <SUCCESS> but was: <FAIL>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "UserServiceWechatLoginContractTest",
|
|
|
+ "case": "wechatLogin_NewOpenid_CreatesParentUserWithFamily",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "expected: <jwt-token-1> but was: <null>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "UserServiceWechatLoginTest",
|
|
|
+ "case": "首次微信登录_自动建档默认家长并创建家庭与成员",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "expected: not <null>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "ArticleAutoTagServiceTest",
|
|
|
+ "case": "toggleStatus_标签非空_不调度自动打标",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "NeverWantedButInvoked",
|
|
|
+ "msg": "threadPoolTaskExecutor.execute(\n <any java.lang.Runnable>\n);\nNever wanted here:\n-> at com.etotem.cfc.unit.ArticleAutoTagServiceTest.toggleStatus_标签非空_不调度自动打标(ArticleAutoTagServiceTest.java:74)\nBut ",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "ArticleAutoTagServiceTest",
|
|
|
+ "case": "toggleStatus_发布且标签为空_调度自动打标",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "TooManyActualInvocations",
|
|
|
+ "msg": "threadPoolTaskExecutor.execute(\n <any java.lang.Runnable>\n);\nWanted 1 time:\n-> at com.etotem.cfc.unit.ArticleAutoTagServiceTest.toggleStatus_发布且标签为空_调度自动打标(ArticleAutoTagServiceTest.java:65)\nBut wa",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "ArticleAutoTagServiceTest",
|
|
|
+ "case": "auditArticle_审核通过且标签为空_调度自动打标",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "TooManyActualInvocations",
|
|
|
+ "msg": "threadPoolTaskExecutor.execute(\n <any java.lang.Runnable>\n);\nWanted 1 time:\n-> at com.etotem.cfc.unit.ArticleAutoTagServiceTest.auditArticle_审核通过且标签为空_调度自动打标(ArticleAutoTagServiceTest.java:103)\nBut",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "ArticleAutoTagServiceTest",
|
|
|
+ "case": "publishByUser_家庭可见直接发布且标签为空_调度自动打标",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "TooManyActualInvocations",
|
|
|
+ "msg": "threadPoolTaskExecutor.execute(\n <any java.lang.Runnable>\n);\nWanted 1 time:\n-> at com.etotem.cfc.unit.ArticleAutoTagServiceTest.publishByUser_家庭可见直接发布且标签为空_调度自动打标(ArticleAutoTagServiceTest.java:138",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheEvidenceIsolateContractTest",
|
|
|
+ "case": "lowSideRules_exposesRecommendationBasisEvidenceCodes",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.gate.evidenceIsolate] AttributionLowSideRules 缺少 EVIDENCE_PUB 常量:T11(G-3)要求证据码隔离常量(可进推荐依据的 PUB/KB、存在性记录 COM、「未核实」标注),当前未落地。 ==> expected: not <null>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheEvidenceIsolateContractTest",
|
|
|
+ "case": "tagEvidence_pubKb_unchanged",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.gate.evidenceIsolate] 契约方法 AttributionComplianceGate#tagEvidence 未实现(G-3 证据码隔离未落地,T11)",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheEvidenceIsolateContractTest",
|
|
|
+ "case": "canEnterRecommendationBasis_unverified_false",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.gate.evidenceIsolate] 契约方法 AttributionComplianceGate#canEnterRecommendationBasis 未实现(G-3 证据码隔离未落地,T11)",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheEvidenceIsolateContractTest",
|
|
|
+ "case": "tagEvidence_unknownOrBlank_markedUnverified",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.gate.evidenceIsolate] 契约方法 AttributionComplianceGate#tagEvidence 未实现(G-3 证据码隔离未落地,T11)",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheEvidenceIsolateContractTest",
|
|
|
+ "case": "isExistenceRecordOnly_com_true_pubFalse",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.gate.evidenceIsolate] 契约方法 AttributionComplianceGate#isExistenceRecordOnly 未实现(G-3 证据码隔离未落地,T11)",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheEvidenceIsolateContractTest",
|
|
|
+ "case": "canEnterRecommendationBasis_com_false",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.gate.evidenceIsolate] 契约方法 AttributionComplianceGate#canEnterRecommendationBasis 未实现(G-3 证据码隔离未落地,T11)",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheEvidenceIsolateContractTest",
|
|
|
+ "case": "lowSideRules_exposesComAndUnverifiedMarkers",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.gate.evidenceIsolate] AttributionLowSideRules 缺少 EVIDENCE_COM 常量:T11(G-3)要求证据码隔离常量(可进推荐依据的 PUB/KB、存在性记录 COM、「未核实」标注),当前未落地。 ==> expected: not <null>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheEvidenceIsolateContractTest",
|
|
|
+ "case": "canEnterRecommendationBasis_pubKb_true",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.gate.evidenceIsolate] 契约方法 AttributionComplianceGate#canEnterRecommendationBasis 未实现(G-3 证据码隔离未落地,T11)",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheEvidenceIsolateContractTest",
|
|
|
+ "case": "lowSideRules_exposesEvidenceIsolateRuleCode",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.gate.evidenceIsolate] AttributionLowSideRules 缺少 RULE_EVIDENCE_ISOLATE 规则码:T11(G-3)要求独立「证据码隔离」合规规则——低侧机制证据标 PUB/KB;COM 只作存在性记录;未核实编号标「未核实」。当前仅落地 G-1 三规则(association_only / no_causal_bridge / no_",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheEvidenceIsolateContractTest",
|
|
|
+ "case": "gate_exposesTagEvidence",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.gate.evidenceIsolate] AttributionComplianceGate 缺少 tagEvidence(1 参) 方法:T11(G-3)证据码隔离契约要求门禁暴露该确定性方法,当前未落地(仅 G-1 的 enforceLowSide / scan / merge 已实现)。 ==> expected: <true> but was: <false>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheEvidenceIsolateContractTest",
|
|
|
+ "case": "isolateForRecommendation_filtersComAndUnverified",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.gate.evidenceIsolate] 契约方法 AttributionComplianceGate#isolateForRecommendation 未实现(G-3 证据码隔离未落地,T11)",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheGateStrainBlockContractTest",
|
|
|
+ "case": "strainBlockRules_exposesStrainBlockRuleCode",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.gate.strainBlock] 规则层(AttributionLowSideRules / AttributionComplianceGate)缺少 \"no_strain_recommendation\" 规则码常量:T6(G-2)要求独立「16S 粒度拦截 / 菌株级推荐阻断」规则码,区别于 T5 的 association_only/no_causal_bridge/no_pre",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheGateStrainBlockContractTest",
|
|
|
+ "case": "attributionModel_exposesGranularityDimension",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.gate.strainBlock] 归因模型(IndicatorReading/MemberAttribution)未暴露粒度(granularity)维度:T6(G-2)按「granularity != strain」拦菌株号推荐,需在读数/归因结论上区分「菌株级(strain)」与「菌属级/16S(非 strain,默认)」粒度。当前模型无 granularity 字段、无 str",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheGateStrainBlockContractTest",
|
|
|
+ "case": "scan_strainNumberProductRecommendation_flagsStrainBlockViolation",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.gate.strainBlock] L5 scan 未将「含菌株号的商品推荐」回扫为 no_strain_recommendation 违规:T6(G-2)要求 granularity != strain 时禁菌株号推荐,scan 应识别「长双歧杆菌 BB536」等菌株号。当前 scan 仅回扫 G-1 的「缺X桥接 + 处方化」,未落地菌株号识别(实际命中=0 条)。 ==> exp",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheGateStrainBlockContractTest",
|
|
|
+ "case": "complianceGate_exposesEnforceStrainBlockEntry",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.gate.strainBlock] AttributionComplianceGate 缺少 enforceStrainBlock(...) 门禁入口:T6(G-2)要求在 L4 出结论前按粒度拦「含菌株号的商品推荐」,与已落地的 enforceLowSide(G-1)同构。当前门禁仅 enforceLowSide + scan,未落地 T6 菌株级拦截入口。 ==> expected",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheGateStrainBlockContractTest",
|
|
|
+ "case": "enforceStrainBlock_16SGranularityWithStrainNumberProduct_flagsViolation",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.gate.strainBlock] 16S 粒度下含菌株号的商品推荐未被拦(AttributionComplianceGate 缺少 enforceStrainBlock 入口):T6(G-2)要求 granularity != strain 时禁生成含菌株号的商品推荐,「推荐含长双歧杆菌 BB536 的产品」应在门禁被识别为 G-2 菌株级拦截违规。当前未落地。",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheKbFieldExposeContractTest",
|
|
|
+ "case": "speciesInfo_escherichia_lowSideImpact_exposed",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.kb.fieldExpose] 菌种综合信息「埃希氏菌属」偏低侧影响 应为非空(契约 §2.2,T10 L2-3 入 L2 查询返回);当前=null ==> expected: <true> but was: <false>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheKbFieldExposeContractTest",
|
|
|
+ "case": "aidefansiEcoli_colonizationNote_exposed",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.kb.fieldExpose] 平台知识库缺少「艾德范思」来源知识(契约 §2.2 艾德范思大肠杆菌 健康定植说明);艾德范思品牌未落地。 ==> expected: <true> but was: <false>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheKbFieldExposeContractTest",
|
|
|
+ "case": "bacteriaGenus_highLowImpact_exposed",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.kb.fieldExpose] 菌属功能库[埃希氏菌属] 偏高影响 应为非空(契约 §2.2 既有键补齐,T10 L2-3 入 L2 查询返回);当前= ==> expected: <true> but was: <false>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheKbVersionSenseContractTest",
|
|
|
+ "case": "extensionModule_hasElevenSubkeys",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.kb.versionSense] getSection(谷禾2026新版扩展知识) 为空,无法验证 11 子键(T9)。 ==> expected: not <null>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheKbVersionSenseContractTest",
|
|
|
+ "case": "extensionModule_containsLowSidePatchSubkey",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.kb.versionSense] getSection(谷禾2026新版扩展知识) 为空,无法验证低侧补丁块(§2.2)。 ==> expected: not <null>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheKbVersionSenseContractTest",
|
|
|
+ "case": "upgradeScript_repeatRun_idempotentNoAccumulation",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.kb.versionSense] 升级脚本(importFromClasspath)运行后 getSection(谷禾2026新版扩展知识) 应非空。T9 ③:重复运行只覆盖不累积。 ==> expected: not <null>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheKbVersionSenseContractTest",
|
|
|
+ "case": "unifiedKbService_getVersion_containsGuhe2026_2",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.kb.versionSense] UnifiedKnowledgeBaseService.getVersion() 应含 +guhe2026.2(当前=2.0)。T9:KB 服务读取并暴露版本感知标记。 ==> expected: <true> but was: <false>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheKbVersionSenseContractTest",
|
|
|
+ "case": "lowSidePatch_containsJudgmentConcepts",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.kb.versionSense] getSection(谷禾2026新版扩展知识) 为空,无法验证低侧补丁块内容(§2.2)。 ==> expected: not <null>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheKbVersionSenseContractTest",
|
|
|
+ "case": "unifiedKbService_moduleKeys_registerExtensionModule",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.kb.versionSense] UnifiedKnowledgeBaseService.MODULE_KEYS 应注册「谷禾2026新版扩展知识」(当前 12 个模块均不含)。T9:注册后 KB 服务加载时才会读取并暴露。 ==> expected: <true> but was: <false>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheKbVersionSenseContractTest",
|
|
|
+ "case": "seedJson_metaVersion_containsGuhe2026_2",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.kb.versionSense] 统一知识库.json 版本应含 +guhe2026.2(当前=2.0)。契约:3.0+guhe2026.2(主)/ 3.1+guhe2026.2(专家),T9 L2-1 ①。 ==> expected: <true> but was: <false>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheKbVersionSenseContractTest",
|
|
|
+ "case": "seedJson_containsExtensionModule",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.kb.versionSense] 统一知识库.json 顶层应含「谷禾2026新版扩展知识」(当前只有 12 个模块)。T9:KB 读取并暴露扩展知识(§2.2)。 ==> expected: <true> but was: <false>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheKbVersionSenseContractTest",
|
|
|
+ "case": "unifiedKbService_getSection_extensionModule_notNull",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.kb.versionSense] UnifiedKnowledgeBaseService.getSection(谷禾2026新版扩展知识) 应非空。T9:KB 服务读取并暴露扩展块(L2-1 ②)。 ==> expected: not <null>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheLowSideAggregateContractTest",
|
|
|
+ "case": "schemaSql_hasCrossCaseAggregateTable",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.p3.lowSideAggregate] schema.sql 缺少跨案例聚合承载表(表名应含 attribution_case,如 attribution_case_strategies),用于沉淀跨案例「同条件致病菌低侧」应对方案。T15:低侧口径并入既有 P3 聚合口径。当前聚合承载表未落地。 ==> expected: <true> but was: <false>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheLowSideAggregateContractTest",
|
|
|
+ "case": "aggregateService_hasAggregateEntryMethod",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.p3.lowSideAggregate] 跨案例聚合服务类不存在,无法验证聚合入口方法(T15)。当前实现未落地。",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheLowSideAggregateContractTest",
|
|
|
+ "case": "aggregateResult_supportsSameReadingSameStrategy",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.p3.lowSideAggregate] 跨案例聚合服务类不存在,无法验证同策略聚类语义(T15)。当前实现未落地。",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheLowSideAggregateContractTest",
|
|
|
+ "case": "aggregateService_classExists",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.p3.lowSideAggregate] service/attribution 等候选包无跨案例聚合服务类(类名应含 CaseAggregate/CrossCase/CaseStrategy/LowSideAggregate 任一)。T15:低侧口径并入既有 P3 聚合口径,可检索「同条件致病菌低侧」应对方案。当前跨案例聚合实现未落地。 ==> expected: <true> bu",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheLowSideAggregateContractTest",
|
|
|
+ "case": "constantPackage_exposesLowSideReadingKey",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.p3.lowSideAggregate] constant 等候选包应暴露「条件致病菌低侧判读补充(人工)」判读口径常量(§2.2 KB 新增子键),作为跨案例聚合口径的事实锚点。T15:低侧口径并入既有 P3 聚合口径。当前判读口径常量未落地。 ==> expected: <true> but was: <false>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheLowSideNoSupplementContractTest",
|
|
|
+ "case": "lowSideNode_exposesNoSupplementFlag",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.lowSide.noSupplement] AttributionComplianceGate.LowSideNode 缺少 isNoSupplement() 节点级禁补菌标记:T4 要求「偏低」归因节点在源头即标注不推荐补菌,而非仅门禁事后回扫。 ==> expected: <true> but was: <false>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheLowSideNoSupplementContractTest",
|
|
|
+ "case": "interpret_lowSideEColi_meaningCarriesNoSupplementRedline",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.lowSide.noSupplement] 偏低大肠杆菌节点干预含义应携带「偏低不推荐补菌」口径(T4 L4-3,无成熟证据支持缺X→补X),实际为:「大肠杆菌 偏离 → 与肠道环境/营养缺口相关,先医后补」。当前仅产通用「先医后补」,未落地 T4 源头禁补菌。 ==> expected: <true> but was: <false>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheLowSideNoSupplementContractTest",
|
|
|
+ "case": "lowSideRules_exposesNoSupplementRuleCode",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.lowSide.noSupplement] AttributionLowSideRules 缺少 RULE_NO_SUPPLEMENT 规则码:T4(L4-3)要求独立「低位补菌红线」——无成熟证据支持「缺大肠杆菌→补大肠杆菌」。当前仅落地 T5 的 no_causal_bridge,未区分「引擎不产出补菌建议」与「文本回扫」。 ==> expected: not <null>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheLowSideNoSupplementContractTest",
|
|
|
+ "case": "lowSideRules_exposesNoSupplementHintWording",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.lowSide.noSupplement] AttributionLowSideRules 缺少 NO_SUPPLEMENT_HINT 口径常量:T4 要求「偏低不推荐补菌」显式口径(无成熟证据支持缺X→补X),供 L4 引擎与报告侧引用,而非仅通用「先医后补」。 ==> expected: not <null>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheNoPathMapContractTest",
|
|
|
+ "case": "mediationChain_gutFloraWisdom_ladderLockedWording",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "RED[guhe.l4.noPathMap] 契约方法 com.etotem.cfc.service.attribution.FiveDimAttributionEngine#mediationChain 未实现(T14 五维 no_path 映射未落地)",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheNoPathMapContractTest",
|
|
|
+ "case": "attribute_gutFloraReading_wealthNoPenalty_red",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "菌群观测对「富」维 no_path:异常菌群读数不应使富维扣分(保持基数 78.0),实际 66.8 ==> expected: <78.0> but was: <66.8>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheNoPathMapContractTest",
|
|
|
+ "case": "isNoPath_gutFloraMind_false",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "RED[guhe.l4.noPathMap] 契约方法 com.etotem.cfc.service.attribution.FiveDimAttributionEngine#isNoPath 未实现(T14 五维 no_path 映射未落地)",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheNoPathMapContractTest",
|
|
|
+ "case": "isNoPath_gutFloraWealth_true",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "RED[guhe.l4.noPathMap] 契约方法 com.etotem.cfc.service.attribution.FiveDimAttributionEngine#isNoPath 未实现(T14 五维 no_path 映射未落地)",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheNoPathMapContractTest",
|
|
|
+ "case": "isNoPath_gutFloraAction_true",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "RED[guhe.l4.noPathMap] 契约方法 com.etotem.cfc.service.attribution.FiveDimAttributionEngine#isNoPath 未实现(T14 五维 no_path 映射未落地)",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheNoPathMapContractTest",
|
|
|
+ "case": "isNoPath_gutFloraBody_false",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "RED[guhe.l4.noPathMap] 契约方法 com.etotem.cfc.service.attribution.FiveDimAttributionEngine#isNoPath 未实现(T14 五维 no_path 映射未落地)",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheNoPathMapContractTest",
|
|
|
+ "case": "mediationChain_gutFloraMind_ladderLockedWording",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "RED[guhe.l4.noPathMap] 契约方法 com.etotem.cfc.service.attribution.FiveDimAttributionEngine#mediationChain 未实现(T14 五维 no_path 映射未落地)",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheNoPathMapContractTest",
|
|
|
+ "case": "noPathMap_gutFlora_wealthAndActionMarked",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "RED[guhe.l4.noPathMap] 契约方法 com.etotem.cfc.service.attribution.FiveDimAttributionEngine#noPathMap 未实现(T14 五维 no_path 映射未落地)",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheNoPathMapContractTest",
|
|
|
+ "case": "attribute_gutFloraReading_actionNoPenalty_red",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "菌群观测对「行」维 no_path:异常菌群读数不应使行维扣分(保持基数 70.0),实际 58.8 ==> expected: <70.0> but was: <58.8>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheNoPathMapContractTest",
|
|
|
+ "case": "attribute_lowSideGutFlora_weakExcludesWealthAndAction_red",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "非身维遮挡:菌群低侧读数不应使「行」成弱维(no_path),weak=[身, 行] ==> expected: <false> but was: <true>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuhePageTailCleanContractTest",
|
|
|
+ "case": "l1Layer_declaresTailAssertRegex",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.l1.pageTailClean] L1 接入归一化层应声明残段断言正则常量(静态 String 常量,值含 /16\\d 即 \\d{1,3}/16\\d 模式,用于校验层断言物种库条目不含 \\d{1,3}/16\\d,T12/L1-2)。当前无残段断言正则,无法对清洗结果做「残段 0 命中」的程序化校验。 ==> expected: <true> but was: <false>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuhePageTailCleanContractTest",
|
|
|
+ "case": "l1Layer_providesTailCleanEntry",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.l1.pageTailClean] L1 接入归一化层(PdfParseService / ReportParserDispatchService / ReportFingerprintService / ParsedReportResult)应提供分页残段清洗执行入口(方法名含 TableTailClean / PageTail / StripTail,如 stripTableTai",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuhePageTailCleanContractTest",
|
|
|
+ "case": "l1Layer_providesTailCleanAssertEntry",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.l1.pageTailClean] L1 接入归一化层应提供残段清洗校验断言入口(方法名含 AssertTailClean / ValidateTail / AssertClean),断言清洗后产物「残段 0 命中」(§2.1 清洗后 76 条、残段 0 命中;T12/L1-2 校验层断言)。当前无残段断言步骤,无法验证清洗效果。 ==> expected: <true> but wa",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuhePageTailCleanContractTest",
|
|
|
+ "case": "l1Layer_declaresPageTailMarker",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.l1.pageTailClean] L1 接入归一化层应声明 _PAGE_TAIL 残段标记常量(静态 String 常量,字段名/值含 PAGE_TAIL / 分页 / 残段,值含残段样例 34/167),作为分页表拼接残段的识别依据(§2.1 / T12)。当前无残段标记常量,残段无法被识别与清洗。 ==> expected: <true> but was: <false>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheShellGuardContractTest",
|
|
|
+ "case": "l1Layer_recognizesEmptyShell26",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.l1.shellGuard] L1 层应识别空壳签名 26 键(静态 int 常量 26,曾误用艾德范思提取器仅产 26 键),判为空壳后换正确提取器(T13)。当前无空壳签名检测,26 键空壳将不被识别。 ==> expected: <true> but was: <false>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheShellGuardContractTest",
|
|
|
+ "case": "l1Layer_declaresGuheV2KeyBoundary32",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.l1.shellGuard] L1 层应声明 guhe_v2 总键数 32(静态 int 常量 32,§2.1 旧 21 键 + 11 增量键),以区分完整 guhe_v2 报告(32 键)与空壳(不足 32 键)。当前无 32 键边界(T13/L1-4)。 ==> expected: <true> but was: <false>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheShellGuardContractTest",
|
|
|
+ "case": "l1Layer_declaresIncrementalKeys11",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.l1.shellGuard] L1 层应声明增量 11 键基准(静态 String 键集合常量 size=11 且字段名含 KEY/KEYS/INCREMENTAL/增量,或静态 int 常量 11),作为 guhe_v2 解析后校验『增量 11 键齐全』的基准(§2.1 旧 21 键 + 11 增量键 = 32 键)。当前无增量键基准,无法判定空壳(T13/L1-4)。 ==> ex",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheShellGuardContractTest",
|
|
|
+ "case": "dispatchService_providesShellGuardEntry",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.l1.shellGuard] ReportParserDispatchService 应提供空壳守卫入口(方法名含 Shell / KeyComplete / ValidateKeys / AssertKeys,如 guardShell),在 guhe_v2 解析后校验增量 11 键齐全(T13/L1-4)。当前 parseReport 仅做 指纹→专用解析器/LLM 兜底,无空壳检测",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheShellGuardContractTest",
|
|
|
+ "case": "l1Layer_addressesCorrectExtractor",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.l1.shellGuard] L1 层(ReportParserDispatchService / ReportFingerprintService / PdfParseService)应寻址正确提取器(静态 String 常量值含 \"extract_guhe_v2\"),在空壳(26 键)检测到时切换用正确提取器(T13『空壳→换正确提取器』)。当前无 extract_guhe_v2 ",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheV2RouteContractTest",
|
|
|
+ "case": "routeLayer_registersTriggerWord_firmicutesBacteroidetesRatio",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.l1.guheV2Route] L1 指纹路由层应可寻址 guhe_v2 触发词锚点「厚壁菌比拟杆菌比值」(静态 String 常量值含之,T7 指纹识别特征,§2.1)。当前 src/main 无此触发词,32 键 guhe_v2 新版报告无法被指纹识别路由。 ==> expected: <true> but was: <false>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheV2RouteContractTest",
|
|
|
+ "case": "routeLayer_providesGuheV2KeyCountSelfCheck",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.l1.guheV2Route] L1 路由层应提供 guhe_v2 <b>32 键自检</b>入口(方法名含 keyCount/selfCheck,或静态 int 常量名含 GUHE_V2 且值为 32)。契约:旧 21 键打底 + 11 增量键 = 32 键,路由/解析后须自检键数齐全(T7 键数自检 32 键,§2.1)。当前无自检入口,32 键报告键数完整性无法保证。 ==> e",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheV2RouteContractTest",
|
|
|
+ "case": "routeLayer_declaresRouteChainOrder",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.l1.guheV2Route] L1 指纹路由层应声明判定链顺序常量(值含 aidefansi→beijing→guhe_v2→standard 完整链),保证 guhe_v2 在 beijing 之后、standard 之前被判定(T7/L1-1,§2.1)。当前未声明,32 键新版报告可能被误判为标准格式而丢失增量 11 键。 ==> expected: <true> but wa",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheV2RouteContractTest",
|
|
|
+ "case": "routeLayer_registersTriggerWord_diseaseSimilarAssessment",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.l1.guheV2Route] L1 指纹路由层应可寻址 guhe_v2 触发词锚点「疾病相似评估」(静态 String 常量值含之,T7 指纹识别特征,§2.1)。当前 src/main 无此触发词,32 键 guhe_v2 新版报告无法被指纹识别路由。 ==> expected: <true> but was: <false>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheV2RouteContractTest",
|
|
|
+ "case": "routeLayer_registersTriggerWord_subhealthAndDietUnreasonable",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.l1.guheV2Route] L1 指纹路由层应可寻址 guhe_v2 触发词锚点「亚健康及营养饮食不合理」(静态 String 常量值含之,T7 指纹识别特征,§2.1)。当前 src/main 无此触发词,32 键 guhe_v2 新版报告无法被指纹识别路由。 ==> expected: <true> but was: <false>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheV2RouteContractTest",
|
|
|
+ "case": "routeLayer_registersGuheV2Stage",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.l1.guheV2Route] L1 指纹路由层(PdfParseService / ReportFingerprintService / ReportParserDispatchService)应注册判定阶段「guhe_v2」(静态 String 常量值含之),使判定链 aidefansi→beijing→guhe_v2→standard 的阶段可寻址(T7/L1-1)。当前 src",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheVersionSplitContractTest",
|
|
|
+ "case": "l1Layer_addressesGuheV2DedicatedParser",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.l1.versionSplit] L1 层(ReportParserDispatchService / ReportFingerprintService)应寻址 guhe_v2 专用解析器(字符串常量值含 \"extract_guhe_v2\"),使 32 键 guhe_v2 报告进入专用解析分支,**不落入** unknown→LLM 兜底(T8 禁把 32 键误判成路由错误)。当前 g",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheVersionSplitContractTest",
|
|
|
+ "case": "l1Layer_declaresLegacy21KeyBoundary",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.l1.versionSplit] L1 层应声明 21/32 键数边界(静态 int 常量 21 与 32 并存),以区分旧 21 键与原 v5 流程、32 键走 guhe_v2(§2.1 旧 21 键 + 11 增量 = 32 键)。当前无键数边界标记,旧 21 键无法与 guhe_v2 隔离,存在被强套 guhe_v2 风险(T8 禁把旧 21 键强套 guhe_v2)。 ==> ",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheVersionSplitContractTest",
|
|
|
+ "case": "parsedReportResult_exposesGuheV2FormatMarker",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.l1.versionSplit] ParsedReportResult 应暴露 guhe_v2 格式版本标记(静态字符串常量值为 \"guhe_v2\"),使新版 32 键格式与旧 beijing/guhe 可区分(§2.1 判定链 aidefansi→beijing→guhe_v2→standard)。当前实现仅 beijing/guhe,格式版本分流未落地。 ==> expected:",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "GuheVersionSplitContractTest",
|
|
|
+ "case": "dispatchService_providesFormatVersionSplitEntry",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "[guhe.l1.versionSplit] ReportParserDispatchService 应提供按报告格式版本分流入口(方法名含 FormatVersion / VersionSplit,如 routeByFormatVersion),按『报告格式版本』分流:32 键→guhe_v2 提取器、旧 21 键→原 v5 流程(T8/L1-3)。当前 parseReport 仅做 指纹→专用",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "ServiceRoleApproveTest",
|
|
|
+ "case": "planner_已有同手机号admin则更新不重复插入",
|
|
|
+ "kind": "E",
|
|
|
+ "type": "NullPointerException",
|
|
|
+ "msg": "java.lang.NullPointerException",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "ServiceRoleApproveTest",
|
|
|
+ "case": "planner_通过后写teacher_status并创建admins记录",
|
|
|
+ "kind": "E",
|
|
|
+ "type": "NullPointerException",
|
|
|
+ "msg": "java.lang.NullPointerException",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "TaskPlanServiceTest",
|
|
|
+ "case": "applyAndActivate_无active实例时新建并置active",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "expected: <100> but was: <null>",
|
|
|
+ "prod_frames": 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "class": "TeamProfitCronContractTest",
|
|
|
+ "case": "refundWithinCooling_cancelAllRecordsFundsNotPaid",
|
|
|
+ "kind": "F",
|
|
|
+ "type": "AssertionFailedError",
|
|
|
+ "msg": "冷静期内订单退款:对应 team_share_record / team_award_record 全部 cancelled、资金不发放(§8.2),cancelled=0 ==> expected: <true> but was: <false>",
|
|
|
+ "prod_frames": 0
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "identity": {
|
|
|
+ "at_test": 2741,
|
|
|
+ "parameterized_methods": 1,
|
|
|
+ "disabled_classes": [
|
|
|
+ "DataMigrationServiceTest",
|
|
|
+ "TaskServiceMinigameTest",
|
|
|
+ "TeacherLoginTest"
|
|
|
+ ],
|
|
|
+ "disabled_inner": 20,
|
|
|
+ "placeholders": 3,
|
|
|
+ "base_executed": 2724,
|
|
|
+ "actual_executed": 2753,
|
|
|
+ "param_expansion_net": 29
|
|
|
+ },
|
|
|
+ "silent_missing": []
|
|
|
+}
|