Могу я говорить, передали ли все тесты под Тестом Perl::Еще?

Вы прокомментировали: не работа, если oldtable имеет столбец идентификационных данных.

я думаю, что это - Ваш ответ. #newtable получает столбец идентификационных данных от oldtable автоматически. Выполните следующие операторы:

create table oldtable (id int not null identity(1,1), v varchar(10) )

select * into #newtable from oldtable

use tempdb
GO
sp_help #newtable

Это показывает Вам, что #newtable действительно имеет столбец идентификационных данных.

, Если Вы не хотите столбец идентификационных данных, попробуйте это при создании #newtable:

select id + 1 - 1 as nid, v, IDENTITY( int ) as id into #newtable
     from oldtable
6
задан Sinan Ünür 2 October 2009 в 05:16
поделиться

2 ответа

Вы можете получить доступ к текущему состоянию тестов с помощью Test :: Builder , доступного через Test :: More-> builder :

use strict;
use warnings;
use Test::More tests => 1;

ok(int rand 2, 'this test randomly passes or fails');

if (Test::More->builder->is_passing)
{
    print "hooray!\n";
}
else
{
    print "aw... :(\n";
}

В качестве альтернативы, вы можете просто выполнить очистку в конце сценария, но выйти раньше, если что-то пойдет не так, с помощью Test :: More BAIL_OUT («причина, по которой вы уходите»); .

Есть много других данных и статистики, которые вы можете собрать о состоянии ваших тестов; см. документацию для Test :: Builder .

10
ответ дан 10 December 2019 в 00:41
поделиться

Вот что я придумал, чтобы избежать Ошибка «Не удается найти метод объекта», показанная внизу этого ответа:

#! /usr/bin/perl 

use strict;
use warnings;
use Test::More tests => 1;

ok(int rand 2, 'this test randomly passes or fails');

my $FAILcount = 0;
foreach my $detail (Test::Builder->details()) {
    if (${%$detail}{ok}==0) { $FAILcount++; }
}

if ($FAILcount == 0) {
    print "hooray!\n";
} else {
    print "aw... :(\n";
}

В Solaris 10 с Perl v5.8.4 (с 31 зарегистрированным патчем) я получил следующее

Can't locate object method "is_passing" via package "Test::Builder"
0
ответ дан 10 December 2019 в 00:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: