VS2015安装常见问题与单元测试

VS的安装过程就不用详细说了,下载好镜像用虚拟光驱加载后安装就好。建议下载iso安装镜像,而不是下载exe在线安装文件,除非你的网超级快…

到这里找下载:https://www.visualstudio.com/downloads/

用免费的社区版就好。Visual Studio Community 2015 with Update 3 – Free

虽然专业版的key网上也有…  专业版:HMGNV-WCYXV-X7G9W-YCX63-B98R2

自定义安装选项比较多,如果都选的话,C盘大概占用60个G的空间…当然用不上的功能可以先不装,以后再装也可以。

安装过程非常的慢,如果电脑配置低加上网速又慢,你还全勾选了…那装一天都是可能的,反正不要打断它的安装就是了。

虽然安装时间很长…但这东西超好用!

 

安装常见的问题:

  • 如果你想开发C++用,不要用默认的安装设置,默认只安装C#/.Net环境。自定义安装时候有关C++的选项要装全。当然跨平台移动开发不需要的可以不装。
  • 开发UWP应用要用Win10。Win7和8.1就不要装Win10 SDK了,貌似也装不上。
  • 由于不可描述的网络原因,有关Python、Git、GitHub、Android、iOS的安装选项选了后都可能让安装变得十分缓慢,因为容易下载失败…也许需要梯子。
  • 如果你勾选了Win10 SDK,在校园网环境下安装可能会提示“安装程序失败,哈希数值不正确”。目前没找到解决办法,想装最好找个网好的地方…
  • 安装位置可以选择,即使不安装在C盘,C盘也会被占用很大的空间。
  • 系统不要用精简版的,用原版!否则一定装不上!
  • VS安装会开启Windows系统功能中的Hyper-V虚拟机,用于调试跨平台应用,会与其他虚拟机软件冲突。必要时,可在启用或关闭Windows功能中关闭Hyper-V。

 

单元测试方法(C#)

使用VS2015用C#开发应用时,单元测试无需另装任何插件。VS2015中已集成了单元测试功能。

这里我们以求最大子数组和的代码为例简述单元测试方法。

新建控制台应用程序

利用动态规划求最大子数组代码如下:

namespace 最大子数组
{
    public class Program
    {
        public int maxSubArray(int[] A, int n)
        {
            int cursum = A[0];
            int maxsum = A[0];
            for (int i = 0; i < n; i++)
            {
                if (cursum < 0)
                    cursum = 0;
                cursum += A[i];
                if (cursum > maxsum)
                    maxsum = cursum;
            }
            return maxsum;
        }
        static void Main(string[] args)
        {
            int[] A = { -2, 5, 3, -6, 4, -8, 6 };
            Program fuc = new Program();
            Console.WriteLine(fuc.maxSubArray(A, A.Length));
            Console.ReadKey();
        }
    }
}

直接右键,点创建单元测试

 保持默认就好

 

添全测试用的代码,可以写好多组。

[TestMethod()]
public void maxSubArrayTest1()
{
    Program test = new Program();
    int[] A = { -2, 5, 3, -6, 4, -8, 6 };
    Assert.AreEqual(test.maxSubArray(A, A.Length), 8);
}
[TestMethod()]
public void maxSubArrayTest2()
{
    Program test = new Program();
    int[] A = { 0,0,0 };
    Assert.AreEqual(test.maxSubArray(A, A.Length), 0);
}

Assert.AreEqual(test.要测试的函数(传参), 期待得到的结果);

总共写了5组测试用例:

用例编号 用例描述 测试数据 期望输出 实际输出 测试结果
1 有正有负 -2, 5, 3, -6, 4, -8, 6 8 8 通过
2 全0 0,0,0 0 0 通过
3 一个负数 -2 -2 -2 通过
4 全是负数 -6, -5, -4, -3  -3 -3 通过
5 最大子数组包含负数 -2, 5, 3, -6, 10 , -8, 6 12 12 通过

 

 

 

 

 

右键运行测试

 或者点左边的全部运行

 

 

 附:最大子数组和算法

给一组数:-2,  5,  3,-6,  4,-8,  6

最大子数组和就是找到数组里和最大的连续的一串数。显然数组里要有负数,要不就直接是整个数组了…比如上面那一串和最大的一串就是5+3=8

5+3完事儿再-6,和就变少了,但不见得往后就不用看了,后面那4要是换成10,那答案就变成12了…

所以我们加上一个正数时候和会增加,加上一个负数时候和会减少,如果加完那个负数的和变成负的了,那就没必要继续累加了,直接清零从后一个数开始累加吧,不然这个负数会减少接下来累加的和的。

所以我们用cursum记录正在算的和,用maxsum记录之前得到的最大的和。A是数组,n是元素个数。

伪代码如下:

 1 int maxSubArray(int *A, int n)
 2 {
 3     cursum = A[0];
 4     maxsum = A[0];
 5     for i = 1 to n-1
 6         if cursum < 0
 7             cursum = 0;
 8         cursum += A[i];
 9         if cursum > maxsum
10             maxsum = cursum;
11     return maxsum;         
12 }

 

本文代码下载:https://coding.net/u/dreamtofly/p/MaxSubArraySum--Unit-test/git

posted @ 2016-10-09 21:53  会飞的懒羊羊  阅读(1472)  评论(0编辑  收藏  举报