tSQLt没有运行测试

时间:2013-07-24 22:56:53

标签: sql-server tsqlt

我有一个曾经工作的安装,但现在似乎没有。想知道是否有其他人经历过这个。

曾经跑过的测试不要。似乎什么都没有运行。输出始终如下:

+ ---------------------- + |测试执行摘要| + ---------------------- +

| No |测试用例名称|结果|

+ - + + -------------- ------ +

测试用例摘要:0个测试用例执行,0个成功,0个失败,0个错误。

4 个答案:

答案 0 :(得分:10)

测试过程必须以全小写关键字测试开始。 [测试开始这个名字很好。所有其他的sprocs都被忽略了。这在代码中得到了证明,但有人(ahem)决定对测试进行编号以进行订购。数字需要在test关键字之后。现在我有再次通过/失败的测试!

答案 1 :(得分:1)

您的问题没有提供大量详细信息。什么产生了上面的输出? EXEC tSQLt.RunAll或者EXEC tSQLt.Run'MyTests'。需要注意的一件事是,如果你有一个已经存在的测试类(比如'MyTests'),你再次运行EXEC tSQLt.NewTestClass'MyTests',它将清除测试类中的所有现有测试。

试试这个。

EXEC tSQLt.NewTestClass 'MyTests'
GO

CREATE PROCEDURE MyTests.testThisOut
AS
BEGIN
    EXEC tSQLt.Fail 'this should not work'
END
GO

EXEC tSQLt.NewTestClass 'MyTests'
GO

EXEC tSQLt.Run 'MyTests'
GO

答案 2 :(得分:0)

经过一整夜的奋斗,我发现了一些对我有用的东西:

我删除了为测试创建的所有存储过程。 (请注意,可以在数据库映射中的“外部资源”->“可编程性”->“存储过程”下找到它们,然后它们可能位于列表的顶部。)

然后我确保再次运行newTestClass(仅以下几行):

EXEC tSQLt.NewTestClass 'testJobs';
GO

然后,我运行了所有存储过程/一次又一次测试,例如这一步:

CREATE PROCEDURE testJobs.[testing simple UTC]

AS
BEGIN

    DECLARE @sum INT;
    SELECT @sum = 3 + 2;

    EXEC tSQLt.AssertEquals 5, @sum;

END;
GO

代码应以“创建过程”开头,以“结束”结尾;行”行。 逐个运行这些命令,然后可以执行以下总测试类:

EXEC tSQLt.Run 'testJobs';

希望这会有所帮助。

Darcula

答案 3 :(得分:0)

就我而言:

1。出现错误,测试案例已执行0次

EXEC tSQLt.NewTestClass @ClassName = N'BasicTests'  ;
GO
CREATE PROCEDURE [BasicTests].[ test assertEquals]  AS
BEGIN

DECLARE  @expected INT;
 SET @expected=1;
 DECLARE @actual INT ;
 SET @actual=1;
    EXEC tSQLt.AssertEquals @expected, @actual;

END;


GO



EXEC tSQLt.RunALL -- OR EXEC tSQLt.Run '[BasicTests]';  --

====================

输出

(受影响的0行)

+ ---------------------- + |测试执行摘要| + ---------------------- +

|否|测试用例名称| Dur(ms)|结果|

+-+ -------------- + ------- + ------ +

测试用例摘要:已执行0个测试用例,成功0个,失败0个,错误0个。

2。正确无误地命名程序中的测试案例执行问题

EXEC tSQLt.NewTestClass 'testBasic';
GO

CREATE PROCEDURE testBasic.[test assertEquals]
AS
BEGIN
DECLARE  @expected INT;
 SET @expected=1;
 DECLARE @actual INT ;
 SET @actual=1;
    EXEC tSQLt.AssertEquals @expected, @actual;

END;
GO

EXEC tSQLt.RunALL  --OR EXEC tSQLt.Run '[testBasic]'; --

=========================

输出

(受影响的0行)

+ ---------------------- + |测试执行摘要| + ---------------------- +

|否|测试用例名称| Dur(ms)|结果| +-+ ------------------------------- + ------- + ------ -+

| 1 | [testBasic]。[test assertEquals] | 0 |成功|

测试用例摘要:已执行1个测试用例,成功1个,失败0个,错误0个。

最后,可以按以下方式查看或删除测试类:

选择名称,SchemaId 从tSQLt.TestClasses;

EXEC tSQLt.DropClass'testBasic'