如何运行由define参数化的测试

时间:2017-01-16 17:48:25

标签: c++ visual-studio testing

我有一个测试套件(更像是我们在工作中使用的本土测试迷宫),正如标题中所提到的,它是由宏定义参数化的。为了给出粗略的图片,代码如下所示:

  1. 输入创建

    void make_input(vector<data> &v)
    {
    #if INPT_RANDOM_GENERATION
        /* fill v accordingly */
    #elif INPT_READ_FROM_FILE
        /* fill v accordingly */
    #else
    #error Not a valid input generation method
    #endif
    }
    
  2. 预处理

    void pre_process_input(vector<data> &v)
    {
    #if PP_SANITIZE
        /* mutate v accordingly */
    #elif PP_DO_NADA
        /* leave v alone */
    #else
    #error Not a valid input pre-processing method
    #endif
    }
    
  3. 运行算法

    void run_algorithms(vector<data> &v)
    {
    #if RUN_SERIAL
        /* ... */
    #elif RUN_PARALLEL
        /* ... */
    #else
    #error Not a valid algorithm
    #endif
    }
    
  4. 后处理

    // well you get the gist
    
  5. 所以,运行这个东西有点麻烦,不是因为#define你需要切换,而是因为可能会遗漏某些东西。现在,我实际上正在调整宏列表并重新编译以进行不同的运行。有没有更好的办法?

    P.S。

    我正在使用Visual Studio 2015专业版,没有人会将此测试套件移植到VS测试框架。我想也许一个批处理文件技巧是个好主意,但我不知道该怎么做。如果存在完全不同的替代方案,那么我想知道。

0 个答案:

没有答案