【问题标题】:Host Unit Testing Framework in our Application? (Nunit, xUnit, MsTest)我们的应用程序中的主机单元测试框架? (Nunit、xUnit、MsTest)
【发布时间】:2015-12-03 19:55:10
【问题描述】:

我们正在开发和维护旧版 winforms 应用程序。该应用程序使用与 GUI 层完全分离的领域模型,但由于存在许多依赖项,因此难以进行单元测试。至少我们有一个构建和安装脚本,我们可以使用它们来自动构建和部署应用程序。

现在,如果我们只能进行一些自动化系统测试...

我们提出了以下想法:

首先,我们可以像这样在脚本文件中编写测试:

public class Test
{
    public void TestSaveACustomer()
    {
        var c = new Customer();
        c.Name="Miller";
        Mapper.Save(c);
        Assert.IsTrue(c.CustomerId >0);
    }
}

然后,在构建和部署应用程序之后,我们可以使用嵌入到应用程序二进制文件中的脚本运行器来运行脚本。我们想象我们可以使用以下命令行

myapp.exe /runTest c:\myScript.cs

我们可以开始构建我们自己的测试框架,这不是很酷吗? ... 呃没有。如果我们可以从我们的应用程序中使用现有的测试框架,如 nUnit、xUnit 或 MSTest,工作量会少得多。

我想我需要

  • 启动 UnitTestRunner
  • 编译脚本
  • 告诉运行程序在已编译的脚本程序集中运行测试。

我不知道从哪里开始,因为我只使用了 VisualStudio 中的 UnitTests。

任何现有的测试框架都可以做到这一点吗?我会使用哪些主要类?

【问题讨论】:

  • 您可以使用 mstest/nunit/xunit 创建系统测试。它不仅适用于单元测试。像通常运行单元测试一样运行它们。

标签: c# unit-testing nunit xunit.net


【解决方案1】:

这里是现有的answer how to run NUnit tests by yourself

问题是,您阻止定期运行测试的原因是什么?

要运行 myApp.exe c:\test\test.cs,您还需要编译测试,然后运行它。您还需要针对您的应用编译它吗?

您可以从 Visual Studio 中调试您的应用程序吗?对?因此,您可以添加一个“子项目”,它指向依赖项和代码的主项目。然后你在那里添加你的测试,定期使用 NUnit。 或者是什么阻止了这种情况?

【讨论】:

    猜你喜欢
    • 2010-12-04
    • 1970-01-01
    • 2011-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多