vs2013添加单元测试
要运行 vs2013单元测试 ,那么打开VS2013选择 工具 (菜单)
-扩展和更新,搜索并安装Unit Test Generator
Install Unit Test Generator 如果不安装这货是不会出现Generate Unit Test的选项的,也就无法创建vs2013单元测试。 安装好插件后做个测试的例子如下:
创建 vs2013单元测试
一个控制台项目MyUnitTest。
然后创建一个类:TestFunction.cs,
添加如下代码:
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MyUnitTest;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace MyUnitTest.Tests
{
[TestClass()]
public class TestFunctionTests
{
[TestMethod()]
public void ToIntTest()
{
TestFunction target = new TestFunction();
string value = "5";
int expected = 5;//预期的值
int actual;//实际的值
actual = target.ToInt(value);
Assert.AreEqual(expected, actual);
value = "5.5";
expected = 5;
actual = target.ToInt(value);
Assert.AreEqual(expected, actual);
}
}
}
然后在该页面ToInt方法体内右键后选择Generate Unit Test,弹出后直接选择OK,会自动生成vs2013单元测试的测试项目。将代码进行如下修改: using System; using System.Collections.Generic;
然后在ToIntTest方法上点右键选择运行测试,结果肯定引发了异常,这个异常是我们上面自己写的。如果去掉红框中的代码再运行,那么结果就是通过。
这个测试框架用的是MsTest,喜欢用Nunit 的可以用nuget管理器下个nunit 包,然后该测试项目添加nunit的引用,右键选择添加测试里就可以选择nunit,上面的例子改成nunit后就是类似这样子
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MyUnitTest;
using NUnit.Framework;
namespace AppHelper.Tests
{
[TestFixture]
public class TalkServiceTests
{
/// <summary>
/// 全局setup,不能使用async
/// </summary>
[TestFixtureSetUp]
public void TestFixtureSetUp()
{
}
/// <summary>
/// 每次测试setup,不能使用async
/// </summary>
[SetUp]
public void SetUp()
{
}
[Test]
public async void ToIntTest()
{
TestFunction target = new TestFunction();
string value = "5";
int expected = 5;//预期的值
int actual;//实际的值
actual = target.ToInt(value);
Assert.AreEqual(expected, actual);
value = "5.5";
expected = 5;
actual = target.ToInt(value);
Assert.AreEqual(expected, actual);
}
}
}
要运行NUnit的测试,还需要安装“NUnit Test Adapter”这个扩展,具体就是从“工具”--“扩展与更新”联机里搜索到“NUnit Test Adapter” 然后下载安装,重启后,单元测试的方法上右键就可以运行测试了