为什么没有自动调用TestInitialize?

丹尼尔·罗宾逊

我是,using Microsoft.VisualStudio.TestTools.UnitTesting;但是我标记为[TestInitialize]的方法在测试之前没有被调用。我以前从未使用过这种特定的测试框架,但在其他所有框架中,总有一种注册Setup和TearDown方法的方法,该方法将在每次测试之前和之后自动运行。Visual Studio测试工具单元测试框架不是这种情况吗?

[TestClass]
public class RepoTest
{
    private const string TestConnectionString = @"Server=localhost\SQL2014EXPRESS64; Database=RepoTest; Trusted_Connection=True;";
    private const string MasterConnectionString = @"Server=localhost\SQL2014EXPRESS64; Database=master; Trusted_Connection=True;";

    [TestInitialize]
    private void Initialize()
    {
        using(var connection = new SqlConnection(MasterConnectionString))
        using(var command = new SqlCommand(Resources.Initialize, connection))
        {
            command.ExecuteNonQuery();
        }
    }

    [TestCleanup]
    private void Cleanup()
    {
        using (var connection = new SqlConnection(MasterConnectionString))
        using (var command = new SqlCommand(Resources.Cleanup, connection))
        {
            command.ExecuteNonQuery();
        }
    }

    [TestMethod]
    public void CreateARepo()
    {
        var repo = new Repo(TestConnectionString);
    }
}
伊利亚·伊万诺夫(Ilya Ivanov)

制作InitializeCleanup公开。您还可以检查在msdn上所有示例都具有公共访问器。

为了重现,请进行以下测试类:

[TestClass]
public class Tests
{
    [TestInitialize]
    public void Initialize()
    {
        Console.WriteLine("initialize");
    }

    [TestCleanup]
    public void Cleanup()
    {
        Console.WriteLine("cleanup");
    }

    [TestMethod]
    public void Test()
    {
        Console.WriteLine("test body");
    }
}

该测试将产生以下结果:

在此处输入图片说明

制作InitializeCleanup私人的,你只能看到test body被打印到控制台:

在此处输入图片说明

使用Microsoft.VisualStudio.QualityTools.UnitTestFramework程序集作为单元测试框架版本10.1.0.0,并使用ReSharper 8.2作为测试运行器。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么没有跨度自动换行?

来自分类Dev

为什么调用setSelectedIndex(0)后没有自动触发itemListener?

来自分类Dev

为什么我的函数没有被调用?

来自分类Dev

为什么我的方法没有调用?

来自分类Dev

为什么 webViewDidStartLoad 没有调用?

来自分类Dev

为什么方法没有被调用

来自分类Dev

为什么没有调用 locationManager (:didUpdateLocations)

来自分类Dev

为什么setTimeout调用的函数没有调用栈限制?

来自分类Dev

为什么调用malloc()没有什么区别?

来自分类Dev

为什么调用malloc()没有什么区别?

来自分类Dev

C#:为什么没有自动生成的equals / gethashcode / == /!=?

来自分类Dev

为什么我的交换文件没有自动挂载?

来自分类Dev

为什么Hibernate没有将会话设为“自动关闭”?

来自分类Dev

日食 - 为什么的.class没有自动提示?

来自分类Dev

为什么没有自动创建urls.py文件?

来自分类Dev

为什么我的MySQL表主键没有自动增加?

来自分类Dev

C#:为什么没有自动生成的equals / gethashcode / == /!=?

来自分类Dev

为什么Chromium的Flash(pepperflashplugin)没有自动更新?

来自分类Dev

为什么gets方法没有显示在自动完成中?

来自分类Dev

为什么在此函数调用中没有歧义?

来自分类Dev

为什么initbinder没有调用提交表单?

来自分类Dev

为什么Scala中的这个函数调用没有被优化?

来自分类Dev

为什么没有从AngularJS $ resource调用返回数据?

来自分类Dev

为什么我的BackupAgentHelper的onBackup()方法没有被调用?

来自分类Dev

laravel-为什么没有括号的函数调用?

来自分类Dev

为什么我的git过滤器没有被调用?

来自分类Dev

为什么我的tomcat阀门没有被调用?

来自分类Dev

为什么没有JavaScript引擎支持尾部调用优化?

来自分类Dev

为什么后台中的函数没有被调用?

Related 相关文章

  1. 1

    为什么没有跨度自动换行?

  2. 2

    为什么调用setSelectedIndex(0)后没有自动触发itemListener?

  3. 3

    为什么我的函数没有被调用?

  4. 4

    为什么我的方法没有调用?

  5. 5

    为什么 webViewDidStartLoad 没有调用?

  6. 6

    为什么方法没有被调用

  7. 7

    为什么没有调用 locationManager (:didUpdateLocations)

  8. 8

    为什么setTimeout调用的函数没有调用栈限制?

  9. 9

    为什么调用malloc()没有什么区别?

  10. 10

    为什么调用malloc()没有什么区别?

  11. 11

    C#:为什么没有自动生成的equals / gethashcode / == /!=?

  12. 12

    为什么我的交换文件没有自动挂载?

  13. 13

    为什么Hibernate没有将会话设为“自动关闭”?

  14. 14

    日食 - 为什么的.class没有自动提示?

  15. 15

    为什么没有自动创建urls.py文件?

  16. 16

    为什么我的MySQL表主键没有自动增加?

  17. 17

    C#:为什么没有自动生成的equals / gethashcode / == /!=?

  18. 18

    为什么Chromium的Flash(pepperflashplugin)没有自动更新?

  19. 19

    为什么gets方法没有显示在自动完成中?

  20. 20

    为什么在此函数调用中没有歧义?

  21. 21

    为什么initbinder没有调用提交表单?

  22. 22

    为什么Scala中的这个函数调用没有被优化?

  23. 23

    为什么没有从AngularJS $ resource调用返回数据?

  24. 24

    为什么我的BackupAgentHelper的onBackup()方法没有被调用?

  25. 25

    laravel-为什么没有括号的函数调用?

  26. 26

    为什么我的git过滤器没有被调用?

  27. 27

    为什么我的tomcat阀门没有被调用?

  28. 28

    为什么没有JavaScript引擎支持尾部调用优化?

  29. 29

    为什么后台中的函数没有被调用?

热门标签

归档