Visual Studio 2017 年的 Xamarin (Android) 单元测试

Xamarin (Android) Unit Tests in Visual Studio 2017

我正在使用 Visual Studio 2017 开发 Xamarin Android 应用程序。我只想添加简单的逻辑单元测试。为此,我尝试添加 "Unit Test App (Android)" 或 "Class Library (Android)" 带有单元测试的项目,其中 none 有效。

单元测试应用程序 (Android)

我将新项目添加到我的 "Unit Test App (Android)" 类型的解决方案中。生成的项目包含 TestsSample class 和示例测试,但我不知道如何启动它们。我安装了 ReSharper,但是当右键单击 project/class 时,我没有选择 运行 测试。 当我转到 "Test" -> "Run" -> "All tests" 时,解决方案已构建,但没有其他任何反应。

Class 带有 nUnit

的库 (Android)

另一个尝试是将 "Class Library (Android)" 类型的新项目添加到解决方案中。之后,我安装了 nUnit nuget 包(install-package nunit 相对于项目 'MoneyBack.Tests' 安装了包 'nunit.3.6.1',目标 'MonoAndroid,Version=v6.0'),安装成功。

我添加了以下内容class:

using NUnit.Framework;

namespace MoneyBack.Tests
{
    [TestFixture]
    public class Class1
    {
        [Test]
        public void SampleTest()
        {
            Assert.IsTrue(true);
        }
    }
}

现在,当右键单击测试项目时,我看到 ReSharper 的选项 "Run Unit Tests",因此我单击它并得到以下异常:

我做错了什么吗?还是 VS2017 的问题?我不知道我是否应该重新安装 VS2015 或者有一些解决方案。感谢您的帮助!

测试分为三个基本级别:

纯 .Net/Mono 代码的经典单元测试,通过 xUnit|NUnit

  • 这里没有什么新鲜事,这是 .Net 程序员一直在做的相同测试,与 Xamarin 平台框架无关

注意:这些测试完全独立于 Xamarin.Android|iOS|Mac

平台测试(包括平台功能)

注意:有多个用于 NUnit、XUnit 等的设备测试包装器...Xamarin 包含一个 NUnitLite 版本,运行s 在 AndroidiOS 并提供特定于设备的 UI 到 运行 这些测试。 Xamarin 具有为 Android 或 iOS.

创建 Unit Test App 项目的模板

注意:这些测试可以包括依赖于平台的功能(网络、蓝牙、GPS、SMS 等...但没有 GUI 相关测试)并且还可以参考 Nunit [Test] 编写的在基于 PCL 的程序集或特定于平台的库中。

NUnitLite 的替代品:

UI 测试

A Casabash/Appium/... 应用程序中 UI 元素的驱动测试及其对输入(触摸)事件的反应。

  • 测试Cloud/Mobile中心and/or其他本地,public或私有移动测试云

  • Xamarin Test Cloud

  1. 您需要安装 nUnit 2.6.X 才能使用 xamarin.UItest。
  2. n不支持单元 3。

测试 运行 来自设备本身,而不是像我们习惯的那样直接来自代码。做这个: 1. 将你的 android 项目设置为 VS 启动项目 2. Select要执行单元测试项目的硬件或模拟器 3.运行它 4.单元测试项目将在设备中部署和执行。 5. 点击带有项目名称的行。将出现可用的测试。点击每一个进行执行和调试! :)