簡體   English   中英

vs2012 C#中使用sqlite進行單元測試

[英]Unit test with sqlite in vs2012 c#

這是我的代碼:

public class Program
{
   static void Main(string[] args)
   {
      exec1();
      Console.WriteLine("completed");
      Console.Read();
   }

   public static void exec1()
   {
      using (IDBConnection conn = new SQLiteConnection("Data Source=test.db"))
      {
         conn.Open();
         IDbCommand command = conn.CreateCommand();
         command.CommandText = "select * from user";
         IDataReader reader = command.ExecuteReader();
         while (reader.Read())
         {
            Console.WriteLine(reader[1]);
         }
      }
   }
}

單元測試:

[TestClass]
public class UnitTest1
{
    [TestMethod]
    public void TestMethod1()
    {
       Program.exec1();
    }
}

它將與調試一起很好地運行,當我使用測試類運行它時,出現錯誤。

System.Data.SQLite.SQLiteException:SQL邏輯錯誤或缺少數據庫沒有此類表:user

嘗試使用DeploymentItemAttribute來確保數據庫文件本身與測試一起部署。

[TestMethod]
[DeploymentItem("test.db")] 
public void TestMethod1()
{
   Program.exec1();
}

(旁注,請不要使用代碼的圖片,因為這樣在回答時無法復制/粘貼)。

您使用什么單元測試框架?

可能不會將test.db復制到在測試框架下運行代碼的位置。

編輯:看屬性可能是MSTest。 我從未使用過它,但是MSTest有一些稱為部署項目的東西。 您必須定義作為測試一部分的外部文件(此處為test.db)。

暫無
暫無

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

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