2012-10-13 84 views
0

我運行它使用SQLite數據庫使用默認SenTestingkit, 來測試iPhone模擬器我的代碼時,我嘗試使用以下任一方式來獲得主目錄測試用例獲得iPhone的文檔目錄

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *docsPath = [paths objectAtIndex:0]; 

NSString *home = NSHomeDirectory(); 

我得到一個指向以下浴

/Users/{user}/Library/Application Support/iPhone Simulator/5.1 
錯誤路徑

我無法創建sqlite數據庫, 任何想法如何在測試用例中獲得正確的路徑?

感謝

回答

1

我找到了答案:)

,我首先得發現無論我在測試用例或使用NSClassFromString爲SenTest類,然後根據每一種情況下構建的路徑運行項目

if (NSClassFromString(@"SenTest") == nil) { 
     // Running project -> path inside the Document folder 
     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
     NSString *docsPath = [paths objectAtIndex:0]; 
     path = [docsPath stringByAppendingPathComponent:KDatabaseName]; 
    } else { 
     // Test case -> path inside "UnitTests" folder in the project directory 
     NSString *directory = [[NSFileManager defaultManager] currentDirectoryPath]; 
     path = [directory stringByAppendingPathComponent:@"UnitTests/"]; 
     path = [path stringByAppendingPathComponent:KDatabaseName]; 
    } 
+0

我來到了同樣的問題。有什麼辦法可以強制測試用例運行時使用與運行應用程序時相同的doc目錄。我有一些重要的值和文件可以被讀取(如應用程序激活)。 – karim

+0

NSClassFromString(@「SenTest」)在應用程序目標和單元測試目標中返回nil。我想現在的名字已經改變了 –

+0

..將@「SenTest」更改爲@「XCTestCase」,代碼現在按照預期工作 –

相關問題