簡體   English   中英

C#MSTest-刪除TestInitialize中的文件

[英]C# MSTest - Delete file in TestInitialize

當選擇運行所有測試時,並且[TestInitialize]方法中包含刪除文件的邏輯,在第一個完成的測試之后的任何操作都會收到以下錯誤:

該進程無法訪問文件'C:\\ root \\ var \\ MonRequestGeneratorTests.sqlite',因為該文件正在由另一個進程使用。

這是Initialize方法:

[TestInitialize]
public override void Initialize()
{
    string sqliteFilePath = "myPath";
    if (File.Exists(sqliteFilePath)) {
        File.Delete(sqliteFilePath);
    }
}

如何通過測試解決這個問題? 這是一個SQLite數據庫,刪除它的方法是刪除文件。 我需要在每次運行測試之前刪除該文件。

這意味着sqlite文件已在其他程序(例如某些SQL管理軟件)中打開,或者在測試期間訪問它后沒有處置流。

每當您使用FileStream或類似文件打開文件時,請確保在“ using”子句中這樣做,以便以后使用。

我建議的一件事是,不要在初始化期間刪除數據,而要在拆卸期間刪除數據。 假設您的工作區是干凈的,並確保完成后保持干凈。 這樣,如果某些測試沒有處理掉它的FileStream,那么有問題的測試將失敗,並且之后不會運行該測試。

暫無
暫無

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

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