簡體   English   中英

自我編寫的Tensorflow C ++代碼的Bazel測試正在通過每個測試,而與預期值無關

[英]Bazel test for self written tensorflow c++ code is passing every test regardless of expected value

我正在使用bazel構建自己的Tensorflow C ++代碼。 我目前一直堅持編寫單元測試,因為無論我期望的值是多少,我編寫的每個測試都會通過該測試。 例如,我正在檢查張量的尺寸,應該為4,但是如果我說期望值為5,它仍然可以通過。 對於我編寫的每個測試,這種行為都是真理。

我覺得這與我編寫的bazel BUILD文件甚至tensorflow有關。 目前,我正在將cc_library用於某些幫助程序功能。 而tf_cc_test用於單元測試。 我還使用了tf_cc_binary和cc_binary作為輔助函數,但是隨后我得到了一個函數的未定義引用錯誤,該錯誤在頭文件中聲明並在源文件中定義。

這是我的文件夾和文件的布局:

dl_super_resolution
   |
   |-src
   |  |-dl_model_helper.cpp 
   |
   |-include
   |  |-dl_model_helper.h
   |
   |-test
   |  |-dl_model_helper_unit_test.cpp

dl_model_helper.cpp和dl_model_helper_unit_test.cpp中的#includes如下:

#include <dl_model_helper.h>

這是BUILD文件當前的樣子:

load("@org_tensorflow//tensorflow:tensorflow.bzl", "tf_cc_test")

cc_library(
    name = "dl_super_resolution_lib",
    srcs = [
        "src/dl_model_helper.cpp",
        "src/dummy.cpp",
    ],
    hdrs = ["include/dl_model_helper.h"],
    data = glob(["images/**"]),
    includes = [
        "include",
        "src",
    ],
    strip_include_prefix = "include",
    visibility = ["//visibility:public"],
    deps = [
        "@org_tensorflow//tensorflow:libtensorflow_cc.so",
        "@org_tensorflow//tensorflow/cc:cc_ops",
        "@org_tensorflow//tensorflow/cc:client_session",
        "@org_tensorflow//tensorflow/core:framework",
        "@org_tensorflow//tensorflow/core:tensorflow",
    ],
)

tf_cc_test(
    name = "dl_super_resolution_tests",
    srcs = glob(["test/*.cpp"]),
    deps = [
        ":dl_super_resolution_lib",
        "@googletest//:gtest_main",
    ],
)

我期望單元測試如果實際上應該失敗的話也會失敗。 到目前為止,它總是在過去。 如果需要更多信息,我也可以共享我的存儲庫。

我終於找到了一種通過添加以下內容使其運行的方法:

int main(int argc, char **argv) 
{
    ::testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}

我認為使用“基礎測試”運行單元測試時,這不是必需的。 但這解決了問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM