Jelajahi Sumber

[FIX] 单元测试和功能测试修改

Kunduin 7 tahun lalu
induk
melakukan
11a0ae946e

+ 14 - 2
mock/serializers/codehw/FunctionalTestSerializer.js

@@ -8,6 +8,7 @@ const dayjs = require("dayjs");
  * @property {number} time 测试时间
  * @property {boolean} isPassAll 是否全部通过
  * @property {string|number} deployId 对应的部署 id
+ * @property {string} consoleOutput 控制台输出
  * @property {OneFunctionalTestSerializerType[]} detail 所有测试用例列表
  */
 
@@ -16,7 +17,8 @@ const dayjs = require("dayjs");
  * @typedef {Object} OneFunctionalTestSerializerType
  * @property {number} id 一个测试用例的 id
  * @property {boolean} isPass 是否通过
- * @property {string} message 输出
+ * @property {string} message 输出(当测试用例失败才有)
+ * @property {string} trace 错误栈信息(当测试用例失败时才有)
  */
 
 /**
@@ -31,13 +33,23 @@ module.exports = ({ id = makeId(), deployId = makeId() }) => {
     id: makeId(),
     isPass: id % 2 === 1,
     message:
-      "One Function alTes tSerializerOne FunctionalTestSerializer OneFunc tionalT estSerializer"
+      "One Function alTes tSerializerOne FunctionalTestSerializer OneFunc tionalT estSerializer",
+    trace: `One Function alTes tSerializerOne FunctionalTestSeria
+    fdsafdsafds fdsaaf dsaf asf dsadfs adsf sadsaf  fads f
+    dfsa sa fdadfsafdsafdsaf safds dsf sadf 
+    f dsfds afdsafdsadfasfdsasa  df sa asfdsafdsa dsaf dsaf asdfgsafgdsaff
+    fd sa dfs asdfs`
   });
 
   return {
     id,
     time: dayjs("2018-9-21").unix(),
     deployId,
+    consoleOutput: `One Function alTes tSerializerOne FunctionalTestSeria
+    fdsafdsafds fdsaaf dsaf asf dsadfs adsf sadsaf  fads f
+    dfsa sa fdadfsafdsafdsaf safds dsf sadf 
+    f dsfds afdsafdsadfasfdsasa  df sa asfdsafdsa dsaf dsaf asdfgsafgdsaff
+    fd sa dfs asdfs`,
     isPassAll: id % 2 === 1,
     detail: [
       getOneFunctionalTestSerializer(),

+ 14 - 2
mock/serializers/codehw/UnitTestSerializer.js

@@ -8,6 +8,7 @@ const dayjs = require("dayjs");
  * @property {number} time 测试时间
  * @property {boolean} isPassAll 是否全部通过
  * @property {string|number} buildId 对应的构建 id
+ * @property {string} consoleOutput 控制台输出
  * @property {OneUnitTestSerializerType[]} detail 所有测试用例列表
  */
 
@@ -16,7 +17,8 @@ const dayjs = require("dayjs");
  * @typedef {Object} OneUnitTestSerializerType
  * @property {number} id 一个测试用例的 id
  * @property {boolean} isPass 是否通过
- * @property {string} message 输出
+ * @property {string} message 输出(当测试用例失败才有)
+ * @property {string} trace 错误栈信息(当测试用例失败时才有)
  */
 
 /**
@@ -31,7 +33,12 @@ module.exports = ({ id = makeId(), buildId = makeId() }) => {
     id: makeId(),
     isPass: id % 2 === 1,
     message:
-      "One Function alTes tSerializerOne FunctionalTestSerializer OneFunc tionalT estSerializer"
+      "One Function alTes tSerializerOne FunctionalTestSerializer OneFunc tionalT estSerializer",
+    trace: `One Function alTes tSerializerOne FunctionalTestSeria
+    fdsafdsafds fdsaaf dsaf asf dsadfs adsf sadsaf  fads f
+    dfsa sa fdadfsafdsafdsaf safds dsf sadf 
+    f dsfds afdsafdsadfasfdsasa  df sa asfdsafdsa dsaf dsaf asdfgsafgdsaff
+    fd sa dfs asdfs`
   });
 
   return {
@@ -39,6 +46,11 @@ module.exports = ({ id = makeId(), buildId = makeId() }) => {
     buildId,
     time: dayjs("2018-9-21").unix(),
     isPassAll: id % 2 === 1,
+    consoleOutput: `One Function alTes tSerializerOne FunctionalTestSeria
+    fdsafdsafds fdsaaf dsaf asf dsadfs adsf sadsaf  fads f
+    dfsa sa fdadfsafdsafdsaf safds dsf sadf 
+    f dsfds afdsafdsadfasfdsasa  df sa asfdsafdsa dsaf dsaf asdfgsafgdsaff
+    fd sa dfs asdfs`,
     detail: [
       getOneUnitTestSerializer(),
       getOneUnitTestSerializer(),

+ 1 - 1
mock/serializers/user/UserSerializer.js

@@ -14,7 +14,7 @@ const makeId = require("../../util/makeId");
  * @param role
  * @returns {UserSerializerType}
  */
-module.exports = (role = "TEACHER") => {
+module.exports = (role = "STUDENT") => {
   return {
     id: makeId(),
     role: role,

+ 3 - 1
src/api/review.js

@@ -167,7 +167,9 @@ export const postStudentReviewWork = (reviewId, docReviewId, checkListBody) => {
     `${REVIEW_MODULE}/student/review/${reviewId}/doc-review/${docReviewId}`,
     {
       method: "POST",
-      body: checkListBody
+      body: {
+        data: checkListBody
+      }
     }
   );
 };

+ 12 - 1
src/views/student/Code/ProjectDetail/Test/FunctionalTestDetail.vue

@@ -24,6 +24,7 @@
         <div class="tag">{{ displayUnixTime(testDetail.time) }}</div>
       </template>
     </page-header>
+    <div class="console-section">{{ testDetail.consoleOutput }}</div>
     <page-body>
       <div v-if="testDetailLoading"><page-section-loading show /></div>
       <div v-else>
@@ -39,7 +40,11 @@
                 页面测试用例 : #{{ item.id }}
               </strong>
             </div>
-            <div class="code-section">{{ item.message }}</div>
+            <div v-if="!item.isPass" class="code-section">
+              {{ item.message }} <br />
+              <br />
+              {{ item.trace }}
+            </div>
           </div>
         </div>
       </div>
@@ -90,4 +95,10 @@ export default {
   background-color: #2d3044;
   color: #cacff1;
 }
+
+.console-section {
+  padding: $default-margin-between $default-margin-between * 1.5;
+  background-color: #2d3044;
+  color: #cacff1;
+}
 </style>

+ 12 - 1
src/views/student/Code/ProjectDetail/Test/UnitTestDetail.vue

@@ -24,6 +24,7 @@
         <div class="tag">{{ displayUnixTime(testDetail.time) }}</div>
       </template>
     </page-header>
+    <div class="console-section">{{ testDetail.consoleOutput }}</div>
     <page-body>
       <div v-if="testDetailLoading"><page-section-loading show /></div>
       <div v-else>
@@ -39,7 +40,11 @@
                 页面测试用例 : #{{ item.id }}
               </strong>
             </div>
-            <div class="code-section">{{ item.message }}</div>
+            <div v-if="!item.isPass" class="code-section">
+              {{ item.message }} <br />
+              <br />
+              {{ item.trace }}
+            </div>
           </div>
         </div>
       </div>
@@ -90,4 +95,10 @@ export default {
   background-color: #2d3044;
   color: #cacff1;
 }
+
+.console-section {
+  padding: $default-margin-between $default-margin-between * 1.5;
+  background-color: #2d3044;
+  color: #cacff1;
+}
 </style>

+ 1 - 1
src/views/student/Review/ReviewDetail/ReviewSelfDetail/index.vue

@@ -15,7 +15,7 @@
           <div v-if="!selfDetailLoading">
             <result-check-list-item
               v-for="item in detail.checkListResult"
-              :arguable="true"
+              :arguable="detail.review.state === 'ARGUING'"
               :key="item.id"
               :check-result-item="item"
               @argue="argue"

+ 2 - 2
vue.config.js

@@ -2,9 +2,9 @@ module.exports = {
   devServer: {
     proxy: {
       "^/api": {
-        // target: "http://localhost:4000/",
+        target: "http://localhost:4000/",
         // target: "http://10.1.1.198:8080/",
-        target: "http://192.168.0.101:8080",
+        // target: "http://192.168.0.101:8080",
         // target: "http://10.1.2.3:8080/",
         ws: true,
         changeOrigin: true