0

閱讀下面的文章Create Test Conditions for the Database Unit Test Designer MSDN上後,我決定試着我的數據庫單元創建自定義的測試條件下測試VS定製testcondition 2010數據庫單元測試

  • 伊夫滿足無論是旗艦版或高級版的要求,我環境。
  • 創建一個新的IIb類項目,並引用Microsoft.Data.Schema.UnitTestingMicrosoft.Data.Schema以及Microsoft.Data.Schema.Sql
  • 我創建了一個類從TestCondition繼承並把它稱爲ExpectedSqlException定義如下

編輯:

 [DisplayName("Some test condition")] 
    [DatabaseSchemaProviderCompatibility(null)] 
    public class SomeTestCondition : TestCondition 
    { 
     public override void Assert(System.Data.Common.DbConnection validationConnection, Microsoft.Data.Schema.UnitTesting.ExecutionResult[] results) 
     { 
     ... 
     } 
    } 
  • how to之後,我創建了extentions.xml文件,然後將p股價在%ProgramFiles%\Microsoft Visual Studio 10.0\VSTSDB\Extensions,它看起來像這樣(類型鍵/值是我組裝的公共信息,這應該是你的不同)

    <?xml version="1.0" encoding="utf-8"?>  
    <extensions assembly="" version="1" xmlns="urn:Microsoft.Data.Schema.Extensions" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:Microsoft.Data.Schema.Extensions Microsoft.Data.Schema.Extensions.xsd">  
        <extension type="SomeTestCondition.SomeTestCondition" assembly="SomeTestCondition, Version=1.0.0.0, Culture=neutral, PublicKeyToken=01a289ad96d7a8a8" enabled="true" />  
    </extensions> 
    
  • ,並簽署大會

後註冊的組件放入GAC

所以現在我的新TestCondition我應該能夠使用它的數據庫單元測試設計器中定義的期望,但可惜它不工作:(

有人可以幫助我?我錯過了什麼?

回答

1

我可以看到一件事情,當我這樣做並沒有清楚地說明如何鏈接你引用。

它在關於把東西放入「程序文件」方面很有意思,但也許這隻適用於32位機器。 Visual Studio是一個32位應用程序,在64位機器上(我正在使用),我忽略了說明並將程序集和xml文件複製到%ProgramFiles(x86)%NOT%ProgramFiles% - 這似乎對我很有用。我從來沒有嘗試過%ProgramFiles% - 所以我無法驗證這是一個問題。

是嗎?

附錄:

看你的代碼進一步,你必須增加您的TestCondition的[DatabaseSchemaProviderCompatibility(空)屬性。當您沒有在當前項目中加載數據庫模式提供程序時,這將加載擴展,測試項目就是這種情況。該屬性不是非常直觀的methinks。

James。

+0

嗨詹姆斯,有趣的理論,我工作在一個32位機器上,並試圖「在程序文件目錄」,以及最後「進入GAC」,仍然沒有運氣,想知道點,如果你會擴大你的回答你的howto? – 2011-02-10 15:31:48