标签: vs-unit-testing-framework

如何对任务parellelism进行单元测试

我有一个.NET类,它创建并启动一个新System.Threading.Tasks.Task的如下:

public class ScheduledTask
{
    private IFoo _foo;

    public ScheduledTask(IFoo foo)
    {
        _foo = foo;
    }

    public void Start()
    {           
        _task = new Task(() => Run());
        _task.Start();
    }

    public void Stop(TimeSpan timeout)
    {
        var taskCompletedNormally = _task.Wait(timeout);
        if (taskCompletedNormally)
        {                
            _task.Dispose();
            _task = null;                
        }
    }

    private void Run(){ // Do some work}
}
Run Code Online (Sandbox Code Playgroud)

如何在C#.Net中对单元ScheduledTask.StartScheduledTask.Stop方法进行单元测试?哪些是可用于此类单元测试的框架,哪些是单元测试线程(或任务并行)的最佳实践?

.net c# unit-testing task-parallel-library vs-unit-testing-framework

4
推荐指数
1
解决办法
1524
查看次数

测试资源管理器未显示网络驱动器的单元测试列表

我有一个简单的C#程序,它有一组单元测试.这是在Visual Studio 2010上开发的.现在在另一台计算机上,我尝试使用Visual Studio 2012重新加载此解决方案并运行测试.我能够成功重建解决方案,但是没有任何单元测试显示在测试资源管理器中.Visual Studio项目(解决方案)位于LaCie以太网网络驱动器上.我将整个解决方案复制到我的本地C:驱动器,从网络驱动器关闭解决方案并在本地C:驱动器上重新打开复制的解决方案.现在,当我构建解决方案时,Test Explorer显示所有测试.我回去打开网络驱动器上的副本,再次测试资源管理器显示没有测试.它说构建解决方案以查看测试列表,但在成功构建包含主项目和单元测试项目的解决方案之后,它仍然显示相同的消息.见下图: 在此输入图像描述

为什么项目位于网络驱动器上导致单元测试失败,没有任何失败消息?

c# unit-testing network-drive visual-studio vs-unit-testing-framework

4
推荐指数
1
解决办法
5804
查看次数

使用Entity Framework 5.0进行单元测试的LocalDb部署到AppHarbor

是否可以针对使用Entity Framework 5.0 Code-First构建的localDb在Visual Studio 2012中运行单元测试?目前我们的开发是针对SQL Express服务器实例的,但由于Db不可用,因此无法与AppHarbor部署一起使用.

visual-studio vs-unit-testing-framework appharbor entity-framework-5

4
推荐指数
1
解决办法
3332
查看次数

如果断言失败,自定义断言类应该怎么办?

我为单元测试创​​建了一个自定义Assert类,当我想通知测试失败时,我不知道该怎么办:

public static class MyAssert
{
    public static void Contains(File file, string text){
        if(!ContainText(file, text)){
            // what to do here?
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我反映了Microsoft.VisualStudio.TestTools.UnitTesting.AssertClass并注意到它调用了HandleFail:

internal static void HandleFail(string assertionName, string message, params object[] parameters)
{
  string str = string.Empty;
  if (!string.IsNullOrEmpty(message))
    str = parameters != null ? string.Format((IFormatProvider) CultureInfo.CurrentCulture, Assert.ReplaceNulls((object) message), parameters) : Assert.ReplaceNulls((object) message);
  if (Assert.AssertionFailure != null)
    Assert.AssertionFailure((object) null, EventArgs.Empty);
  throw new AssertFailedException((string) FrameworkMessages.AssertionFailed((object) assertionName, (object) str));
}
Run Code Online (Sandbox Code Playgroud)

但这是一种内部方法.我可以使用反射来调用它,或者抛出AssertFailedException更有意义吗?我还缺少另一种选择吗?

c# unit-testing vs-unit-testing-framework c#-4.0

4
推荐指数
1
解决办法
1830
查看次数

AssemblyCleanup 未运行。

我有一个问题,我的[AssemblyCleanup]方法没有被调用。

我目前正在构建一个自动化框架,并希望在我的测试之前和之后完成一些 API 调用。我已经找到了程序集初始化/清理方法,它们非常适合我需要做的事情。但是我无法[AssemblyCleanup]运行该方法。

我有一个我的测试固有的基类,这就是我想要[AssemblyCleanup]放置方法的地方。

我的课。

    [TestClass]
public class TestBaseChrome: WebDriver
{
    public TestContext TestContext { get; set; }

    [TestInitialize]
    public void Initialize()
    {
      //Do Stuff Here for tests
    }

    [TestCleanup]
    public void Cleanup()
    {
        //used for end of test reporting
    }

    [AssemblyCleanup]
    public static void EndOfSuiteActions()
    {            
        //Stuff here when whole test suite finished
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经在这里这里看到了示例,并表明[AssemblyCleanup]需要在具有该[TestClass]属性的类中。如果我将它[AssemblyCleanup]放在一个带有实际测试的类中,它会按预期工作。但我希望所有的前测试/后测试都放在一个地方。

任何意见,将不胜感激。

c# ui-automation vs-unit-testing-framework

4
推荐指数
1
解决办法
1139
查看次数

MSTest代码覆盖率

我有一个Web服务的测试项目,当我在调试模式下运行测试时,一切正常.但是,当我刚运行测试时,我得到以下错误,对于我尝试获取代码覆盖率的引用程序集:

类初始化方法WebServiceTest.wstest.MyClassInitialize引发异常.System.IO.FileLoadException:System.IO.FileLoadException:无法加载文件或程序集'TestAssembly,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 57f286581e1d278a'或其依赖项之一.强名称验证失败.(来自HRESULT的异常:0x8013141A)---> System.Security.SecurityException:强名称验证失败.(来自HRESULT的异常:0x8013141A).我发现的所有内容都表示要在GAC中注册TestAssembly.这是我该怎么办?为什么它在调试模式下工作?谢谢

mstest code-coverage vs-unit-testing-framework

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

首次测试(VS2010 C#)

这是我第一次遇到单元测试,我试图理解如何在简单的日期验证中使用这个概念.

用户可以选择代表日期的ToDate,直到可以进行付款.如果我们的日期无效,则无法付款.

    private void CheckToDate(DateTime ToDate)
    {
        if (Manager.MaxToDate < ToDate.Year)
            //show a custom message
    }
Run Code Online (Sandbox Code Playgroud)

在这种情况下如何使用单元测试?

问候,

亚历克斯

谢谢你的回答:

正如你们许多人所建议的那样,我将拆分函数并将验证与消息显示分开,并使用单元测试.

public bool IsDateValid(DateTime toDate)
{
    return (Manager.MaxToDate < toDate.Year);
}
Run Code Online (Sandbox Code Playgroud)

c# unit-testing visual-studio-2010 vs-unit-testing-framework

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

如何从MSTest获得测试结果状态?

在NUnit中,我可以从中获得测试结果context.Result.State.如果它NUnit.Framework.TestState.Success,那么我知道测试通过了.

在MSTest中,我如何获得该信息?

我看到了context.Properties.Keys,但没有一个人谈到测试结果的状态.

unit-testing mstest vs-unit-testing-framework

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

无法在VS2013中创建测试,没有Microsoft.VisualStudio.TestTools.UnitTesting命名空间

我是C#,.NET和VS的新手; 使用VS 2013 Ultimate.我正在尝试使用似乎是"VS方式"的东西来创建一个单元测试,但无法弄明白.

看起来罪魁祸首是我无法访问Microsoft.VisualStudio.TestTools.UnitTesting.Assert方法或封闭命名空间......我环顾四周,无法找到对此命名空间的任何引用.这是我需要安装的额外内容吗?在这一点上,我不知道该寻找什么.

我正在使用其他主要方法,这是一个庞大的PITA ......

c# unit-testing visual-studio vs-unit-testing-framework visual-studio-2013

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

将项目升级到NuGet 3.0后运行AutoFixture xUnit理论的问题

我遇到了AutoFixture的问题,并为它提交了GitHub问题.但是,在这里进行一些搜索似乎有一些类似于我的问题的问题(但是没有解决)所以我想在这里询问是否具有更高的可见性.

问题是:我最近将我的NuGet 2.0项目(packages.config)升级到NuGet 3.0(project.json - 不要与ASP/.NET Core的project.json混淆).除了一组特定的测试外,所有东西都跳了起来:

那些使用AutoFixture的AutoData(或InlineAutoData)理论并进行修饰的测试.

我已经创建了一个非常简单的这个问题的复制品,可以在这里找到:https: //github.com/Mike-EEE/Stash/tree/master/ReSharper.NuGet30

(请注意,该名称反映了问题与ReSharper相关的初步印象,但它确实影响了它和本机VS单元测试运行器.)

您可以尝试构建解决方案,并且应该发现它构建正常,但是在ReSharper的测试运行器和本机VS测试运行器中都找不到测试(请注意我正在运行VS 2015 Update 3).

但是,注释掉这些行并重建应该成功发现所有测试.

这是一个头脑风暴,并且阻止我继续.我有一个考虑因素吗?FWIW,我已清空了我的%TEMP%\VisualStudioTestExplorerExtensions作为的xUnit的文档中建议,也没有工作,要么.

任何帮助将不胜感激!

unit-testing xunit.net autofixture vs-unit-testing-framework nuget

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