Re: [файловый diff/fc] vs [Assert.IsEqual()]
От: WolfHound  
Дата: 13.07.06 18:50
Оценка:
Здравствуйте, vvaizh, Вы писали:

V>Собственно хочется обсудить почему большинство систем сравнивают каждое значение в отдельности, в то время как проще и удобнее гораздо сваливать все первые аргументы Assert.IsEqual() в файл и сравнивать их с эталонным файлом целиком

Хорошая мысль. Возял на вооружение.
Кстати автора Nemerle используют подобную систему.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[2]: [файловый diff/fc] vs [Assert.IsEqual()]
От: vvaizh http://izh-test.sourceforge.net/
Дата: 14.07.06 03:38
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Здравствуйте, vvaizh, Вы писали:


V>>Собственно хочется обсудить почему большинство систем сравнивают каждое значение в отдельности, в то время как проще и удобнее гораздо сваливать все первые аргументы Assert.IsEqual() в файл и сравнивать их с эталонным файлом целиком

WH>Хорошая мысль. Возял на вооружение.
WH>Кстати автора Nemerle используют подобную систему.

У них есть какая то инфраструктура для этого или что?
я по документации не нашёл ничего
http://izh-test.sourceforge.net/russian/introduction.html
Re[3]: [файловый diff/fc] vs [Assert.IsEqual()]
От: WolfHound  
Дата: 14.07.06 09:51
Оценка: 8 (1)
Здравствуйте, vvaizh, Вы писали:

V>У них есть какая то инфраструктура для этого или что?

V>я по документации не нашёл ничего
Их тесты примерно так выглядят. См конец.
using Nemerle.Utility;

[System.Flags]
enum SomeFlags {
  | Flag1 = 0x01
  | Flag2 = 0x02
  | Flag3 = 0x04
  | FlagAll = 0xff
}

interface IFoo
{
  Foo : int { get; }
  Bar : string { get; set; }
}

class D : IFoo
{
  [Accessor]
  foo : int = 42;

  [Accessor (flags = WantSetter)]
  mutable bar : string = "qux";
}

class C
{
  [Accessor]
  some_field : int = 42;

  [Accessor (flags = WantSetter)]
  mutable some_other : bool;

  [Accessor (Xyz, flags = WantSetter | Internal)]
  mutable __some_other : string = "kopytko";

  [Accessor (flags = WantSetter | Internal)]
  static mutable static_field : string = "foo";


  [FlagAccessor (Flag1, Flag2, flags = WantSetter | Protected)]
  [FlagAccessor (Flag3)]
  mutable flags : SomeFlags;


  public static Main () : void
  {
    System.Console.WriteLine (StaticField);
    StaticField = "bar";
    System.Console.WriteLine (StaticField);

    def c = C ();

    System.Console.WriteLine (c.SomeField);
    System.Console.WriteLine (c.SomeOther);
    System.Console.WriteLine (c.Xyz);
    c.Xyz = "qux";
    c.SomeOther = true;
    System.Console.WriteLine (c.SomeField);
    System.Console.WriteLine (c.SomeOther);
    System.Console.WriteLine (c.Xyz);

    assert (typeof (C).GetMethod ("set_SomeField") == null);
    assert (typeof (C).GetMethod ("get_SomeField") != null);

    assert (!c.Flag1);
    assert (!c.Flag2);
    assert (!c.Flag3);
    c.flags = SomeFlags.FlagAll;
    assert (c.Flag1);
    assert (c.Flag2);
    assert (c.Flag3);
    c.Flag1 = false;
    assert (!c.Flag1);
    assert (typeof (C).GetMethod ("set_Flag3") == null);
  }

}

/*
BEGIN-OUTPUT
foo
bar
42
False
kopytko
42
True
qux
END-OUTPUT
*/
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[4]: [файловый diff/fc] vs [Assert.IsEqual()]
От: vvaizh http://izh-test.sourceforge.net/
Дата: 14.07.06 10:02
Оценка:
Здравствуйте, WolfHound, Вы писали:

V>>У них есть какая то инфраструктура для этого или что?

V>>я по документации не нашёл ничего
WH>Их тесты примерно так выглядят. См конец.

Да, похоже на то
Но насколько я понимаю не проработан вопрос замены эталона реальным результатом
и просмотра результирующего файла каким нибудь вьюером (например html страницу целиком смотреть)
http://izh-test.sourceforge.net/russian/introduction.html
Re: [файловый diff/fc] vs [Assert.IsEqual()]
От: WolfHound  
Дата: 19.07.06 19:24
Оценка:
Здравствуйте, vvaizh, Вы писали:

Кстати я тут подумал... ведь для этого можно прекрасно использовать SVN.
Ведь там есть все что нужно для такого тестирования... поиск изменений, добавление новых образцов, изменение текущих, удаление не нужных, распространение новых образцов всем челенам комманды.
Ставишь тортилку и у тебя есть практически готовый энжин для тестирования... все что нужно это чтобы файлы генерировались по нужным путям (можно задать иерархию... по папочкам разложить...).
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[2]: [файловый diff/fc] vs [Assert.IsEqual()]
От: vvaizh http://izh-test.sourceforge.net/
Дата: 20.07.06 01:52
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Здравствуйте, vvaizh, Вы писали:


WH>Кстати я тут подумал... ведь для этого можно прекрасно использовать SVN.

WH>Ведь там есть все что нужно для такого тестирования... поиск изменений, добавление новых образцов, изменение текущих, удаление не нужных, распространение новых образцов всем челенам комманды.
WH>Ставишь тортилку и у тебя есть практически готовый энжин для тестирования... все что нужно это чтобы файлы генерировались по нужным путям (можно задать иерархию... по папочкам разложить...).

ну вообще говоря нечто похожее
хотя и не совсем

моя среда позволяет очень быстро (двухбуквенным шорткутом)
переключать режимы просмотра для каждого варианта:
— файл эталон
— файл — старый результат
— файл — разница (который диффом создан)

или в одном режиме опять же одной клавишей быстро просматривать все тличающиеся результаты

в тортойсе придётся оригинальную версию отдельно восстанавливать..

хотя да, подход применим и на NUnit ах без всяких лишних средств
(просто реализуешь функцию соответствующего файлового сравнения)
и у меня целый тестовый набор для ОРМ именно так и реализован (несколько сот тестов)

но не от хорошей жизни же я сел свою утилиту писать
надоело очень медленно сравнивать файлы используя традиционные средства..

кроме того, там отдельная песня — тестирование отчётов и прочих нагенерённых html-страниц..
для них у меня есть режим "броузер", когда я полученный файл просматриваю используя CHtmlView

у меня например очень удобно так php-шные страницы тестируются
я задаю на входе параметры запроса, состояние СУБД и состояние сессии
а на выходе тестирую html-страницу, состояние сессии и состояние базы
и все в виде текстовых файлов..
http://izh-test.sourceforge.net/russian/introduction.html
Re[3]: [файловый diff/fc] vs [Assert.IsEqual()]
От: WolfHound  
Дата: 25.07.06 18:46
Оценка:
Здравствуйте, vvaizh, Вы писали:

V>в тортойсе придётся оригинальную версию отдельно восстанавливать..

Зачем? Вот буквально сейчас тестирую одну программку.
В два клика получаю список изменившихся тестов. В одни клик открываю сравнение любого из файлов с эталоном. Тортилка показывает эталон и текущий файл. Причем различающияся куски раскрашены разным цветом. Все очень наглядно. Често говоря не понимаю в чем ты увидил проблему.
Никогда чтоли не пользовался тортилкой для того чтобы работать с обычнчми исходниками?
Тут главное не боятся писать результаты тестов прямо в рабочею копию... у нас ведь все это под контролем версионника...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[4]: [файловый diff/fc] vs [Assert.IsEqual()]
От: WolfHound  
Дата: 25.07.06 19:05
Оценка:
Здравствуйте, WolfHound, Вы писали:

Ктати вот скриншот того как тортилка показывает разницу
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[4]: [файловый diff/fc] vs [Assert.IsEqual()]
От: vvaizh http://izh-test.sourceforge.net/
Дата: 26.07.06 06:12
Оценка: +1
Здравствуйте, WolfHound, Вы писали:

WH>Здравствуйте, vvaizh, Вы писали:


V>>в тортойсе придётся оригинальную версию отдельно восстанавливать..

WH>Зачем? Вот буквально сейчас тестирую одну программку.
WH>В два клика получаю список изменившихся тестов. В одни клик открываю сравнение любого из файлов с эталоном. Тортилка показывает эталон и текущий файл. Причем различающияся куски раскрашены разным цветом. Все очень наглядно. Често говоря не понимаю в чем ты увидил проблему.
WH>Никогда чтоли не пользовался тортилкой для того чтобы работать с обычнчми исходниками?
WH>Тут главное не боятся писать результаты тестов прямо в рабочею копию... у нас ведь все это под контролем версионника...

Я не говорю что это не невозможно
я говорю что юзабилити специального приложения всё равно выше..

в смысле я надеюсь что то что у меня получилось — удобнее

но как грится на вкус и цвет..
я тоже с такого же примерно подхода начинал
http://izh-test.sourceforge.net/russian/introduction.html
Re[19]: [файловый diff/fc] vs [Assert.IsEqual()]
От: FR  
Дата: 26.07.06 11:31
Оценка:
Здравствуйте, vvaizh, Вы писали:


V>Ну хорошо, а есть ли вообще системы которые автоматизируют тесты на основе diff-а?

V>и почему их видимо гораздо меньше чем xunit-вых систем?

Re[12]: Питон наступает :)
Автор: FR
Дата: 25.07.06
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.