我是,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);
}
}
制作Initialize
并Cleanup
公开。您还可以检查在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");
}
}
该测试将产生以下结果:
制作Initialize
和Cleanup
私人的,你只能看到test body
被打印到控制台:
使用Microsoft.VisualStudio.QualityTools.UnitTestFramework程序集作为单元测试框架版本10.1.0.0,并使用ReSharper 8.2作为测试运行器。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句