在给定的情况下,如何计算测试代码中数据夹具文件的路径:
test/{main.cpp,one_test.cpp,two_test.cpp}
- 编译完成
build/
test/fixtures/{conf_1.cfg}
我面临的问题如下:
/* in test/one_test.cpp */
TEST_CASE( "Config from file", "[config]" ) {
Config conf;
REQUIRE( conf.read(??? + "/conf_1.cfg") )
}
到目前为止我找到的解决方案是在配置时定义一个宏:
#define TEST_DIR "/absolute/path/to/test"
这是在我wscript
的 with中获得的
def configure(cnf):
# ...
cnf.env.TEST_DIR = cnf.path.get_src().abspath()
cnf.define('TEST_DIR', cnf.env.TEST_DIR)
cnf.write_config_header('include/config.h')
其他尝试包括__FILE__
扩展为../test/one_test.cpp
,但我无法使用它。
一些背景知识:我正在使用Catch 测试框架和waf 构建工具。
是否有可能取决于测试框架的常见做法或模式?