3

Visual Studio 2012 を使用して Windows ストア アプリの単体テストを実行できないようです。

アプリケーションを構成するために、次の手順を実行しました。

  1. Windows ストア プロジェクトを作成します。私はそれを構築し、それをうまく実行させます。
  2. ソリューションを右クリックし、[追加] > [新しいプロジェクト] をクリックします。[Add New Project Menu] からプロジェクト テンプレート [Unit Test Library (Windows Store apps)] を選択し、[OK] をクリックしてプロジェクトを作成します。
  3. 次のような基本的な単体テストを作成します。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.VisualStudio.TestPlatform.UnitTestFramework;

namespace UnitTestLibrary1
{
  [TestClass]
  public class UnitTest1
  {
    [TestMethod]
    public void TestMethod1()
    {
      string a = "a";
      string b = "b";

      Assert.AreEqual(a, b);
    }
  }
}

**ここの MSDN Web サイトにある指示に従って、単体テスト プロジェクトをまだビルドしていないことに注意してください。

4 - Visual Studio のテスト エクスプローラーを開くと、次のように表示されます。

ここに画像の説明を入力

5 - ソリューション全体のビルドに進みます (以下はビルド出力です)

1>------ Build started: Project: vevo.pushclient, Configuration: Debug Any CPU ------
2>------ Build started: Project: UnitTestLibrary1, Configuration: Debug Any CPU ------
2>  UnitTestLibrary1 -> C:\Source\simple_push_client\vevo.pushclient\UnitTestLibrary1\bin\Debug\UnitTestLibrary1.dll
1>  vevo.pushclient -> C:\Source\simple_push_client\vevo.pushclient\vevo.pushclient\bin\Debug\vevo.pushclient.exe
========== Build: 2 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

以下はテストからの出力でした。エラーをグーグルで検索してみましたが、役立つ回答が見つかりませんでした

------ Discover test started ------
MSTestAdapter failed to discover tests in class 'UnitTestLibrary1.UnitTest1' of assembly 'C:\Source\simple_push_client\vevo.pushclient\UnitTestLibrary1\bin\Debug\UnitTestLibrary1.dll'. Reason Method not found: 'System.String Microsoft.VisualStudio.TestPlatform.UnitTestFramework.TestCategoryBaseAttribute.get_TestCategory()'..
NUnit 0.97.0.0 discovering tests is started
NUnit 0.97.0.0 discovering test is finished
========== Discover test finished: 0 found (0:00:00.1800223) ==========

テスト エクスプローラーには、ビルド前と同じメッセージが引き続き表示され、「使用可能なすべてのテストを検出するには、ソリューションをビルドしてください....」というメッセージが表示されます。

それでもrun allをクリックしてみました。

これにより、ビルドの次の出力が得られました

========== Build: 0 succeeded, 0 failed, 2 up-to-date, 0 skipped ==========

テストの出力はありません

言うまでもなく、テスト エクスプローラーでは、実行、合格、スキップ、または失敗したテストは表示されませんでした。

UnitTest プロジェクトの構成プロパティがビルドおよびデプロイに設定されていることを確認し、各プラットフォーム構成 (任意の CPU、x86、および x4) を使用してビルドを試みました。

ここに画像の説明を入力

4

1 に答える 1

0

テストメソッドに属性が欠落していることを示しています...

MSTestAdapter は、アセンブリ 'C:\Source\simple_push_client\vevo.pushclient\UnitTestLibrary1\bin\Debug\UnitTestLibrary1.dll' のクラス 'UnitTestLibrary1.UnitTest1' でテストを検出できませんでした。理由メソッドが見つかりません: 'System.String Microsoft.VisualStudio.TestPlatform.UnitTestFramework.TestCategoryBaseAttribute.get_TestCategory()'..

理由は不明ですが、必須ではありません。ただし、属性を追加します。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.VisualStudio.TestPlatform.UnitTestFramework;

namespace UnitTestLibrary1
{
  [TestClass]
  public class UnitTest1
  {
    [TestMethod]
    [TestCategory("tests")]    <! -- Added Attribute -->
    public void TestMethod1()
    {
      string a = "a";
      string b = "b";

      Assert.AreEqual(a, b);
    }
  }
}

カテゴリは何でもかまいません。なぜそうするのかわからないので、Category はオプションのパラメーターにする必要があります。

于 2014-05-02T22:54:33.863 に答える