标签: mstest

在Team Foundation Server(TFS)构建上运行单元测试

在给定构建运行时,让Team Foundation Server运行单元测试的步骤是什么?

在第一次设置TFS服务器时,开发人员或系统管理员应该注意哪些警告/陷阱/变通办法?

构建期间单元测试问题的常见故障排除步骤是什么?

installation tfs unit-testing mstest

23
推荐指数
1
解决办法
3万
查看次数

如何验证期望的数组是否是MSTest中的实际数组?

以下方法失败:

[TestMethod]
public void VerifyArrays()
{
    int[] actualArray = { 1, 3, 7 };
    Assert.AreEqual(new int[] { 1, 3, 7 }, actualArray);
}
Run Code Online (Sandbox Code Playgroud)

如何在不迭代集合的情况下通过它?

c# mstest

23
推荐指数
2
解决办法
4485
查看次数

如何使用MSTest/xUnit框架编写上下文/规范样式单元测试?

我一直在使用MSpec编写我的单元测试,并且更喜欢BDD风格,我认为它更具可读性.我现在正在使用MSpec不支持的Silverlight,所以我不得不使用MSTest,但仍然希望保持BDD风格,所以我想尝试一种方法来做到这一点.

只是为了解释我想要实现的目标,这就是我如何编写MSpec测试

[Subject(typeof(Calculator))]    
public class when_I_add_two_numbers : with_calculator
{
  Establish context = () => this.Calculator = new Calculator();
  Because I_add_2_and_4 = () => this.Calculator.Add(2).Add(4);
  It should_display_6 = () => this.Calculator.Result.ShouldEqual(6);
}

public class with_calculator
{
  protected static Calculator;
}
Run Code Online (Sandbox Code Playgroud)

因此,对于MSTest,我会尝试像这样编写测试(虽然你可以看到它不起作用,因为我已经输入了2个TestInitialize属性,但是你得到了我正在尝试做的...)

[TestClass]
public class when_I_add_two_numbers : with_calculator
{
   [TestInitialize]
   public void GivenIHaveACalculator()
   {
      this.Calculator = new Calculator();
   }

   [TestInitialize]
   public void WhenIAdd2And4()
   {
      this.Calculator.Add(2).Add(4);
   }

   [TestMethod]
   public void ThenItShouldDisplay6()
   {
      this.Calculator.Result.ShouldEqual(6);
   }
}

public class with_calculator
{
  protected Calculator Calculator {get;set;} …
Run Code Online (Sandbox Code Playgroud)

c# bdd unit-testing mstest mspec

23
推荐指数
1
解决办法
7740
查看次数

如何将NUnit测试集成到TFS 2010构建中

将nunit测试集成到TFS 2010的最佳方法是什么?是通过通用测试还是有更好的方法来运行它们?

理想情况下,我希望每个测试程序集具有一个通用测试的粒度,并且可以在TFS构建报告中显示结果.

nunit mstest tfsbuild generic-test tfs2010

22
推荐指数
2
解决办法
9796
查看次数

Assert.Inconclusive和IgnoreAttribute

什么是使用正确的方式Assert.Inconclusive,并IgnoreAttribute在MS单元测试框架?

我们Assert.Inconclusive主要用于以下测试:

  • 尚未实施
  • 不知何故破碎或不完整=需要进一步关注
  • 当测试机构因任何原因被注释掉时

我们这样做是因为:

  • 不确定的测试可以有消息
  • 我们希望在TFS上的测试结果中看到这样的测试

我们的问题是Inconclusive测试在TFS和Resharper中都被标记为错误.如果我们使用,IgnoreAttribute我们将在Resharper中看到这些测试,但MS Test runner和TFS将完全忽略它们.使用IgnoreAttribute在TFS和MS测试亚军是同样喜欢评论整个测试是无用的.

.net resharper unit-testing mstest team-build

22
推荐指数
2
解决办法
8500
查看次数

MSTest:CollectionAssert.AreEquivalent失败.预期的集合包含1次出现

问题:

任何人都可以告诉我为什么我的单元测试失败了这个错误消息?

CollectionAssert.AreEquivalent失败.预期的集合包含1次出现.实际集合包含0次出现.

目标:

我想检查两个列表是否相同.如果它们包含具有相同属性值的相同元素,则它们是相同的.订单无关紧要.

代码示例:

这是产生错误的代码.list1并且list2是相同的,即彼此的复制粘贴.

[TestMethod]
public void TestListOfT()
{
    var list1 = new List<MyPerson>()
    {
        new MyPerson()
        {
            Name = "A",
            Age = 20
        },
        new MyPerson()
        {
            Name = "B",
            Age = 30
        }
    };
    var list2 = new List<MyPerson>()
    {
        new MyPerson()
        {
            Name = "A",
            Age = 20
        },
        new MyPerson()
        {
            Name = "B",
            Age = 30
        }
    };

    CollectionAssert.AreEquivalent(list1.ToList(), list2.ToList());
}

public class MyPerson
{ …
Run Code Online (Sandbox Code Playgroud)

.net c# unit-testing mstest

22
推荐指数
3
解决办法
1万
查看次数

如何使陷入无限循环的测试失败?

我有一些产生无限循环的代码.现在我需要编写一个在大约200ms后失败的测试.200ms将指示代码处于无限循环中.

例如:

public void CodeUnderTest()
{
   while(true)
   {

   }
} 
Run Code Online (Sandbox Code Playgroud)

.net c# unit-testing mstest .net-2.0

22
推荐指数
2
解决办法
2811
查看次数

xUnit等于MSTest的Assert.Inconclusive

什么是以下MSTest代码的xUnit等价物:

Assert.Inconclusive("Reason");
Run Code Online (Sandbox Code Playgroud)

这给出了黄色测试结果,而不是通常的绿色或红色.我想断言由于某些条件而无法运行测试,并且在满足这些条件后应该重新运行测试.

unit-testing assert mstest xunit assertion

22
推荐指数
2
解决办法
4116
查看次数

在DataRowAttribute中使用十进制值

我已经使用MSTest.TestAdaptor 1.1.17在Visual Studio 2017中运行了测试组件.我想使用DataTestMethod来运行包含多个数据集的测试.我的问题是,我想在我的DataRows中使用十进制值,但不能:

[DataTestMethod]
[DataRow(1m, 2m, 3m)]
[DataRow(1, 2, 3)]
[DataRow(1.0, 2.0, 3.0)]
public void CheckIt(decimal num1, decimal num2, decimal expected)
{
}
Run Code Online (Sandbox Code Playgroud)

当我尝试使用[DataRow(100m, 7m, 7m)]它时甚至不会编译源:error CS0182: An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type..

当我使用[DataRow(100, 7, 7)]测试时,测试将失败,因为我的测试期望decimal但是得到int32的值.

当我使用[DataRow(100.0, 7.0, 7.0)]测试时,测试将失败,因为我的测试期望decimal但是得到double的值.

为什么我不能在DataRow中使用十进制数?

c# unit-testing mstest visual-studio-2017

22
推荐指数
2
解决办法
2419
查看次数

在使用NUnit和MSTest进行单元测试之间切换

如何配置.NET解决方案(C#,.NET 2.0)以允许其他开发人员使用NUnit或MSTest对解决方案使用相同的单元测试?

背景:

在这个项目中,一些开发人员使用VS2005 Team Edition,而其他开发人员使用VS2005 Pro,因此并非所有开发人员都能够运行MSTest.鉴于这是一个企业项目,团队无法使用TestDriven.net或ReSharper.我知道使用VS中的任何一种产品都可以解决这个问题,但考虑到授权购买许可证所需的时间,购买这些产品中的任何一种都不是一个可行的选择.

提前感谢您的帮助,MagicAndi.

.net nunit unit-testing mstest

21
推荐指数
2
解决办法
7781
查看次数