我正在使用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」等等。 最後,值得一提的是,我確信這是正確的文件名,我確信數據庫中有信息可以讀取。仍然沒有運氣。
關於我在做什麼錯誤的任何想法?我嘗試了「看上面的目錄」的技巧,就像我在項目設置中所做的那樣「..」,但它也不喜歡那樣。