2009-07-24 62 views
2

我最近在VS2008內部運行單元測試時遇到了一些不一致問題,而在命令行上使用mstest運行相同的單元測試。在VS2008中使用單元測試vs在命令行中使用mstest

我的場景有點高級,所以我可能碰到了一些問題。我有許多數據驅動的單元測試針對同一個DataSource運行。我也喜歡試用PostSharp。所以,我寫了PostSharp方面 - TestDataSource - 我適用於單元測試類型,而不是單元測試方法。構建類型時,此方面指示PostSharp將DataSource屬性附加到該類型中的每個單元測試方法。

檢查Reflector中的內置組件顯示每種測試方法確實歸因於正確的DataSource屬性。在命令行上使用mstest運行測試的行爲與預期相同 - 每個測試都針對指定的數據源運行。

但是,在VS2008中運行完全相同的單元測試無法找到數據源。就好像VS2008忽略了構建好的程序集並查看源代碼,當然這看起來不是數據驅動的測試,因爲DataSource屬性是在構建期間注入的。

部署項目沒有問題。將DataSource手動附加到測試使VS2008愉快地運行它們。

任何想法?

回答

0

如果您在測試中放置斷點並檢查加載模塊的列表,您應該看到哪個是您正在調試的程序集的確切路徑。它是預期的(在bin \ Debug中)?如果在調試器運行時使用Reflector打開此文件,您是否看到PostSharp內部的東西?

有什麼奇怪的是,PostSharp單元測試的一部分被用於MSTest的書面和他們從Visual Studio中運行沒有問題...

+0

加載的組件是不是從斌\調試,因爲它是一個MSTEST單元測試。它被複制到專用的部署目錄。但它是正確的組裝。當我在調試器運行時用反射器檢查它時,我看到PostSharp在相應的單元測試方法中注入的DataSource屬性。 我不知道它是否重要,但我們的產品不是內置在bin \ Debug中的,而是所有項目都內置在解決方案文件夾之外的單個合併bin目錄中。 DataSource是一個特殊的屬性。你試過PostSharping嗎? – mark 2009-07-26 06:59:47