Procházet zdrojové kódy

加速测试case的运行

Michael Wang před 2 roky
rodič
revize
9d6215065b

+ 34 - 5
cypress/e2e/markbody-container.spec.cy.ts

@@ -2,6 +2,7 @@ describe("评卷页面-裁切图", () => {
   beforeEach(() => {
     cy.networkStub();
     cy.visit("/");
+    cy.clock();
   });
 
   it("裁切图显示", () => {
@@ -39,6 +40,7 @@ describe("评卷页面-裁切图", () => {
   it("裁切图点击-分数增加", () => {
     // 任务开始渲染了
     cy.get(".single-image-container");
+    cy.tick(10000);
     // 等待遮罩层消除
     cy.get('[data-test="status-spin"]').should("not.exist");
 
@@ -47,24 +49,48 @@ describe("评卷页面-裁切图", () => {
       .get("body")
       .type("1")
       .click(200, 300)
-      .wait(1500)
+      .tick(3500)
+      .get("body")
       .type("2")
       .click(300, 500)
-      .wait(1500)
+      .tick(3500)
       .get(".single-image-container:nth(2)")
       .scrollIntoView()
       .get("body")
       .type("3")
       .click(400, 200)
-      .wait(500);
+      .tick(500);
     cy.get(".score-container").should("have.length", 3);
 
     cy.get(".total-score span span").contains("6");
   });
 
+  it("裁切图点击-分数轨迹过近", () => {
+    // 任务开始渲染了
+    cy.get(".single-image-container");
+    cy.tick(10000);
+    // 等待遮罩层消除
+    cy.get('[data-test="status-spin"]').should("not.exist");
+
+    cy.get(".mark-body-container")
+      .scrollTo(0, 0)
+      .get("body")
+      .type("1")
+      .click(200, 300)
+      .tick(1500)
+      .get("body")
+      .type("2")
+      .click(205, 305)
+      .tick(500);
+    cy.get(".score-container").should("have.length", 1);
+
+    cy.get(".total-score span span").contains("1");
+  });
+
   it("裁切图点击-分数在有效区域外", () => {
     // 任务开始渲染了
     cy.get(".single-image-container");
+    cy.tick(10000);
     // 等待遮罩层消除
     cy.get('[data-test="status-spin"]').should("not.exist");
 
@@ -85,6 +111,7 @@ describe("评卷页面-裁切图", () => {
   it("清除本题分数", () => {
     // 任务开始渲染了
     cy.get(".single-image-container");
+    cy.tick(10000);
     // 等待遮罩层消除
     cy.get('[data-test="status-spin"]').should("not.exist");
 
@@ -93,12 +120,14 @@ describe("评卷页面-裁切图", () => {
       .get("body")
       .type("3")
       .click(200, 200)
-      .wait(1500)
+      .tick(1500)
+      .get("body")
       .type("2")
       .click(200, 300)
-      .wait(500);
+      .tick(500);
 
     cy.get('[data-test="clear-score"]').click();
+    cy.tick(500);
     cy.get("body .mark-body-container .score-container").should(
       "have.length",
       0

+ 2 - 2
cypress/support/commands.ts

@@ -55,7 +55,7 @@ Cypress.Commands.add("networkStub", () => {
   );
   cy.intercept("POST", "/mark/getSetting", {
     fixture: "settings-1.json",
-  });
+  }).as("setting");
   cy.intercept("POST", "/mark/getStatus", {
     fixture: "status-1.json",
   });
@@ -64,7 +64,7 @@ Cypress.Commands.add("networkStub", () => {
   });
   cy.intercept("POST", "/mark/getTask", {
     fixture: "task-1.json",
-  });
+  }).as("task");
   cy.intercept("GET", "/slice/**", (req) => {
     function getFixtureFilenameForUrl(url: string) {
       return "assets/" + url.split("/").pop() + ",null";

+ 3 - 2
src/features/mark/MarkBoardTrack.vue

@@ -337,10 +337,11 @@ function numberKeyListener(event: KeyboardEvent) {
     return;
   }
 
-  if (event.timeStamp - keyPressTimestamp > 1 * 1000) {
+  // 为了cypress可以加速时间
+  if (Date.now() - keyPressTimestamp > 1 * 1000) {
     keys = [];
   }
-  keyPressTimestamp = event.timeStamp;
+  keyPressTimestamp = Date.now();
   keys.push(event.key);
   if (isNaN(parseFloat(keys.join("")))) {
     keys = [];