你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

C语言的一套测试框架

[复制链接]
gaosmile 发布时间:2020-9-9 19:14
工作久了,难免有一些知识点容易遗忘,每次遗忘都会去重新写一个测试demo,然后测试出结果后就把这个demo给删掉了,下次又忘了,又要重写去写,这真是一件吃力不讨好的事情,看到身边有朋友写了这么一套测试框架,觉得非常有用。执行程序,输入对应的项目,即可进行测试,如需添加项目,只需在枚举上增加项目后,在Run_User_Test_App的switch语句上添加枚举,最后编写测试函数即可。( J+ c/ x3 N6 G/ A' X+ p' Q
具体代码实现如下:
1#include <stdio.h> 3 l# m& h  {4 e: q% E! Q
2#include <stdlib.h>
% d; B; c0 K2 A- A; d% W8 g 3#include <string.h>: X7 q! G4 h3 [) a6 B
4#include <unistd.h>: \$ `. r8 w4 C/ Z2 [0 a( V4 B
5#include <conio.h>4 i3 p6 ^/ ^+ S( I% _  Y
6. H/ l% B1 K; V+ _; Z8 c
7//当前测试项编号枚举
: k; h! O! Y, r 8enum TEST_ITEM
; f: o1 e& W$ o7 w6 H 9{
* v7 s" B' v% ]4 E10    TEST_1 = 1,; n% k% |8 [  B% }$ T: h# R
11    TEST_2,4 z0 \. T  Q6 H$ J/ `( y1 Y
12    TEST_3,. ^7 Y2 [4 R' K- e0 |
13    TEST_4,
& k1 n# [; d9 K! H% x! Y0 ?, @14    TEST_5,
5 w. V8 ]4 r7 q- Y2 n8 J. y15    TEST_64 ?! j* j5 R# ^1 j, L
16};
! _! Z; L# Y; g* f+ R. X& h17* j* x1 `6 C# ?, L9 y$ l" E
18
: k% R/ F, a8 y, {5 @. T19
: j/ ]% y% p* v3 r) m- q/ U) t20int  Get_User_input(void) ;
& C# g; I& m7 u6 [: V21void Run_User_Test_App(int KeyCode);  F& Y9 p& o# h6 a; u
22
; s, @. H3 h3 b' e$ H% k% q23int main(void)
5 m* Z# {4 ?3 ?: ?5 y, ~24{
# H8 [6 F0 _+ {* @# T, D5 ]" t/ |25    int KeyCode = 0 ;" O/ G8 m3 Z1 r
26    while(1)
  B$ H2 C+ y! B' ?7 m' O27    {( Y1 a/ [+ o6 C! \/ R8 d
28        printf("请输入测试项:\n");+ D  i! N" A; z
29        KeyCode = Get_User_input();
9 c" Y9 y8 e8 ]30        Run_User_Test_App(KeyCode);
5 ?1 `) i4 ]4 I2 ]$ j, \31    }
' V0 d; _# N+ l( ~. y5 Z. Z( @+ F32    return 0 ;
5 U! l, Q0 N5 I33}0 g8 a& b. c! o9 f/ {
34
; X( s; n/ u9 y  j/ p3 S1 O' g! ^35
! X! Y9 \5 f# N' Q' N1 ]8 ]36void TEST_1_APP(void)
) T! ~1 ]% F' s37{5 w: q- s, S( @- F3 M
38    printf("测试项目一\n");
" s  `' r: _. W7 B: \0 ~39}8 P5 M) C5 i% M3 s6 L! m6 S
40
" R  L$ M- x4 ^+ `! N41void TEST_2_APP(void)& j' ]7 `& \: d# w. o: m
42{4 X$ q! d. H) ]& }
43    printf("测试项目二\n");
3 s% B5 }( c& |+ l; y44}4 {3 R! @3 r9 V0 ^, e; }" y
45
/ ]5 L- U% k0 {! }; p1 d3 D46void TEST_3_APP(void)) l( \; b1 i: N* _% E7 V9 h8 [
47{
6 f: g+ C+ v# U48    printf("测试项目三\n");6 W# S' S( F" c7 |
49}
+ i- ^# K. k% O( Z1 i50
9 F! v# e, T, X* b3 D) H" ^: b" i51void TEST_4_APP(void)
5 r6 e- i) H& {  P; E6 m52{
5 k: [1 R9 x- Z53    printf("测试项目四\n");  
1 G! e% U! Z) U0 A8 O5 b54}
! @! w' d0 k; w: i- i557 D' p/ F& W5 s9 L+ |
56void TEST_5_APP(void)
3 d8 d! C1 l9 W/ k57{. f5 r4 F: `" c( p1 k
58    printf("测试项目五\n");  
3 x3 r) u. {) M# D59}
4 {0 ~4 U) _7 l60
. h# T3 @2 H5 ?* E  H61void TEST_6_APP(void)
" p% r% k% u8 _8 a$ F62{
' F% i0 h+ h' t) d63    printf("测试项目六\n");* G& u' u. i8 Q+ s& B
64}
1 ^  _# Y4 K, I' t1 h; H: o# \65  m1 C% S* X/ Z; [1 a$ M: Z
66//执行用户测试APP
6 g8 ~* c  [/ s0 X6 X- d67void Run_User_Test_App(int KeyCode)" B: \  f+ [; u# F
68{
! U* o: ~4 h% X. p: |# D- P69    switch(KeyCode)2 Y& M, c) J1 n# {) s
70    {
3 @3 M4 _& `0 d71        case TEST_1:
9 m9 E7 L) K$ R, a, c72            TEST_1_APP();
7 y9 L7 `' y! A8 k9 c9 Z73            break ;5 H: v% ?7 K" O2 ~; p( z
74        case TEST_2:
, ~- i9 Y0 o; z$ `1 i75            TEST_2_APP();
# ?. k' f$ K; D" r) a76            break ;% b. I1 U" N' v* |9 A
77        case TEST_3:$ Q8 D/ g/ A' o7 D) g9 I
78            TEST_3_APP();
. _4 `0 V: E, a( Q8 \' f/ M- m' I( K79            break ;
6 T" x: ^* J5 l3 u% y80        case TEST_4:
, x* ]1 i3 w3 e( D81            TEST_4_APP();' n1 u, S( z& b$ N
82            break ;
3 {( B8 ?, n/ E2 h1 w83        case TEST_5:% h7 q2 @4 V& ?+ b! L. H
84            TEST_5_APP();& P' o; v7 S' q% q* I4 ]
85            break ;
$ y+ c+ X2 Q) P86        case TEST_6:7 S0 t. ~- o4 f* h5 v! M5 _* M
87            TEST_6_APP();
  v7 {0 ~9 M4 A; e88            break ;
, P7 v( q6 v- b6 _7 x* X6 v7 C& a7 T% K89        default:
4 q1 h4 ], p# j90            break ;
% o7 B: Z9 A; ?% O& |' P91    }   
3 U* g, ~% r: b$ d2 K0 ~4 D' n! y' ]92}
* O' o' Y* T+ c2 s( k93
- w  X) o2 f# X' ^94int Get_User_input(void) 0 v7 O( H+ P, |' `' N
95{( A" l+ Y2 H9 V% s$ O# D- g" O
96    int KeyCode = 0;
) F* p% v3 c, m# x' q+ J97    scanf("%d",&KeyCode);* ]2 x3 d$ n6 A* N
98    return KeyCode ;
0 W* l; D% [+ L1 ?+ u99}
$ p: H# f) r5 l% T+ K: x
收藏 评论0 发布时间:2020-9-9 19:14

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版