代码之家  ›  专栏  ›  技术社区  ›  EricFlorentNoube

Google测试参数数组的最大大小太小

  •  0
  • EricFlorentNoube  · 技术社区  · 11 月前

    我正在使用谷歌的C++测试框架(nuget包Microsoft.googletest.v140.windesktop.msvcstl.static.rt-dyn,版本1.8.1.7),并对测试进行参数化。当参数数组太大时,我遇到了一个问题:在一个有两个参数的简单情况下 2 96 如下所示:

    INSTANTIATE_TEST_CASE_P(
        PricingTests,
        Bulk1,
        ::testing::Values(2,96));
    

    没有问题,因为我们有

    template <typename T1, typename T2>
    internal::ValueArray2<T1, T2> Values(T1 v1, T2 v2) {
      return internal::ValueArray2<T1, T2>(v1, v2);
    }
    

    template <typename T1, typename T2>
    class ValueArray2 {
     public:
      ValueArray2(T1 v1, T2 v2) : v1_(v1), v2_(v2) {}
    
      template <typename T>
      operator ParamGenerator<T>() const {
        const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_)};
        return ValuesIn(array);
      }
    
      ValueArray2(const ValueArray2& other) : v1_(other.v1_), v2_(other.v2_) {}
    
     private:
      // No implementation - assignment is unsupported.
      void operator=(const ValueArray2& other);
    
      const T1 v1_;
      const T2 v2_;
    };
    

    在允许处理两个参数数组的框架中。谷歌很好,并实施了所有措施,直到 ValueArray50 但我有一个包含6000多个参数的数组,每个参数代表我必须测试的不同测试模型。

    1 回复  |  直到 11 月前
        1
  •  0
  •   3CxEZiVlQ    11 月前

    它在大约5年前的v1.10.0中发生了变化: New variadic implementation for gtest-param-test 。您需要更新GoogleTest。