如何在Visual Studio中执行单元测试之前执行SQL脚本来准备DB

时间:2010-09-09 07:55:23

标签: sql visual-studio visual-studio-2008 unit-testing

我有很多依赖于某个数据库配置的单元测试。我想每次运行单元测试时都执行一个脚本,这样数据库就可以了,并且由于DB上的数据错误,测试不会失败。我目前有一个SQL脚本,可以将正确的数据放在数据库中。

有没有办法从Visual Studio中做到这一点(2008年会很棒)?

先谢谢你的配偶。

3 个答案:

答案 0 :(得分:2)

为什么不以编程方式执行脚本?您可以编写一个实用程序方法,它接受文件名和数据库连接并执行它。

SQLHelper.executeScript("example.sql", DatabaseConnection.get());

这只是一行代码,可以复制和粘贴。也许您甚至不必分配数据库连接,如果它已经建立。你的测试将在任何地方运行。

我为每个测试套件使用单独的脚本。所以我不必保持SQL脚本同步。并且执行大量不需要的SQL语句会降低测试速度,从而缩短开发周期。

答案 1 :(得分:2)

您可以使用类似[ClassInitialize][AssemblyInitialize]的属性来实现方法,这些属性在类或程序集中的第一个测试之前执行一次。在这种方法中,您可以运行脚本。

您还可以编写一个在每个测试([TestInitialize])中调用的方法,该方法知道它是否已被执行。这样您就可以在每次需要它的测试之前运行脚本,但是当您只运行不需要它的测试时则不行。

答案 2 :(得分:0)

是的,你可以。 您可以将其作为TestInitialise或Pre-Test的一部分运行。