1

Mono に移行したい NUnit で記述された 2000 個の単体テストを含む .NET プロジェクトがあります。

このプロジェクトは、Mac OS X で Mono 3.0.2/MonoDevelop 3.0.5 を使用して再コンパイルされます。MonoDevelop の統合テスト ランナーを使用して、すべての単体テストを実行できます。

ただし、次を使用して「LongRunning」とマークされた多くのテストがありますTestCaseAttribute

[TestCase(1, Category="LongRunning")]

しかし、ユニットテストオプションを使用してそれらを除外することはできませんでした(メニュービュー - >パッド - >ユニットテスト - > ...から)。

ここに画像の説明を入力

カテゴリを含める/除外するオプションはありますが、それらを試しても効果がありません。

MonoDevelop テスト ランナーを使用して LongRunning 単体テストを除外するにはどうすればよいですか?

4

1 に答える 1

1

さて、2 つの問題は別物です。このパッチはあなたの問題を修正するはずです:

diff --git a/main/src/addins/NUnit/Services/NUnitAssemblyTestSuite.cs b/main/src/addins/NUnit/Services/NUnitAssemblyTestSuite.cs
index 385e50f..b2addd6 100644
--- a/main/src/addins/NUnit/Services/NUnitAssemblyTestSuite.cs
+++ b/main/src/addins/NUnit/Services/NUnitAssemblyTestSuite.cs
@@ -357,19 +357,19 @@ namespace MonoDevelop.NUnit
                        ITestFilter filter = null;
                        if (test != null) {
                                if (test is UnitTestGroup) {
-                                       filter = new TestNameFilter (CollectTests ((UnitTestGroup)test));
+                                       NUnitCategoryOptions categoryOptions = (NUnitCategoryOptions) test.GetOptions (typeof(NUnitCategoryOptions));
+                                       if (categoryOptions != null && categoryOptions.EnableFilter && categoryOptions.Categories.Count > 0) {
+                                               string[] cats = new string [categoryOptions.Categories.Count];
+                                               categoryOptions.Categories.CopyTo (cats, 0);
+                                               filter = new CategoryFilter (cats);
+                                               if (categoryOptions.Exclude)
+                                                       filter = new NotFilter (filter);
+                                       } else {
+                                               filter = new TestNameFilter (CollectTests ((UnitTestGroup)test));
+                                       }
                                } else {
                                        filter = new TestNameFilter (test.TestId);
                                }
-                       } else {
-                               NUnitCategoryOptions categoryOptions = (NUnitCategoryOptions) test.GetOptions (typeof(NUnitCategoryOptions));
-                               if (categoryOptions.EnableFilter && categoryOptions.Categories.Count > 0) {
-                                       string[] cats = new string [categoryOptions.Categories.Count];
-                                       categoryOptions.Categories.CopyTo (cats, 0);
-                                       filter = new CategoryFilter (cats);
-                                       if (categoryOptions.Exclude)
-                                               filter = new NotFilter (filter);
-                               }
                        }

                        RunData rd = new RunData ();

他の問題 (設定が書き込まれていない) に対するパッチもありますが、シリアライゼーション コードには触れていませんが、MD は保存したプロパティを読み戻すことができません。私はそれを調べています。

于 2013-01-20T02:25:58.453 に答える