3

我似乎无法使用 Visual Studio 2012 为 Windows 商店应用程序运行单元测试。

为了配置我的应用程序,我已经完成了以下步骤。

  1. 我创建了一个 Windows 商店项目。我构建它并让它运行得很好。
  2. 我比右键单击解决方案,然后单击添加 > 新项目。从“添加新项目菜单”中,我选择项目模板“单元测试库(Windows 应用商店应用程序)”,然后单击“确定”创建项目。
  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 网站上的说明,我还没有构建单元测试项目

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) ==========

测试资源管理器仍然显示与构建之前相同的消息,即“构建您的解决方案以发现所有可用的测试......

即便如此,我还是尝试单击全部运行。

这导致构建的以下输出

========== 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);
    }
  }
}

类别可以是任何你想要的。不知道为什么这样做,类别应该是一个可选参数。

于 2014-05-02T22:54:33.863 回答