我正在使用Visual Studio进行单元测试。创建一个测试项目,其目录位于我正在测试的项目内。VS单元测试无法打开数据库(sqlite3)
我想“单元测试”一个函数打开数据库文件,并根据数据库的内容创建类对象。 函数本身实际上工作正常。
bool import_materials_from_db(const char *db_name){
sqlite3 *db;
int rc = sqlite3_open_v2(db_name, &db, 2, NULL);
if (rc != SQLITE_OK) {
std::cout << "The database \"" << db_name << "\" was not found.\n";
return false;
}
}
我已经明显减少了功能,因为这是失败的地方。 RC表示错误代码SQLITE_CANTOPEN(14)。 传递给函数的另一件事是持有我的类的std :: vector <>。不要相信这是特别相关的。
我调用该函数像这样:
import_materials_from_db("materials.db");
这主要应用中的伟大工程,但只要我试试我的单元测试中:
import_materials_from_db("test_database.db");
我有没有运气。
项目目录:
Advanced_Task_1\
单元测试指南:
Advanced_Task_1\UnitTest1\
我试图以防万一把数据库文件中的每个目录中。 我尝试过传递“.. \ test_database.db”等等。 最后,值得一提的是,我确信这是正确的文件名,我确信数据库中有信息可以读取。仍然没有运气。
关于我在做什么错误的任何想法?我尝试了“看上面的目录”的技巧,就像我在项目设置中所做的那样“..”,但它也不喜欢那样。