Skip to content

Косметические изменения управляемой формы запуска тестов#407

Merged
artbear merged 5 commits intoxDrivenDevelopment:developfrom
ValeraS:develop
Feb 8, 2015
Merged

Косметические изменения управляемой формы запуска тестов#407
artbear merged 5 commits intoxDrivenDevelopment:developfrom
ValeraS:develop

Conversation

@ValeraS
Copy link
Copy Markdown
Contributor

@ValeraS ValeraS commented Feb 6, 2015

Проба пера. Незначительные исправления логики и оформления кода.

… тестов.

Косметические исправления в управляемой форме запуска тестов.
… форме запуска тестов.

Алгоритм взят из книги Кнута "Искусство программирования" т.2
@silverbulleters-github-service
Copy link
Copy Markdown

Can one of the admins verify this patch?

@artbear
Copy link
Copy Markdown
Member

artbear commented Feb 6, 2015

ok to test please

@artbear artbear self-assigned this Feb 6, 2015
@artbear
Copy link
Copy Markdown
Member

artbear commented Feb 6, 2015

Спасибо за пулл-реквест.
Зачем изменен алгоритм перемешивания? что не устраивало? что изменилось?

@artbear
Copy link
Copy Markdown
Member

artbear commented Feb 6, 2015

ИМХО Нельзя называть косметическими изменения в 51 методе :(
Очень много исправлений, тяжело выполнять код-ревью.

@artbear
Copy link
Copy Markdown
Member

artbear commented Feb 6, 2015

Первое, что сразу бросается в глаза и не устраивает - перед выполнением теста сбрасывается состояние всех тестов.
Я часто люблю делать так - открываю тесты из каталога и по частям их запускаю.
Сначала тест1, затем тест10 и т.п.
После выполнения тест10 состояние тест1 не меняется, остается, как есть.
ИМХО очень удобно для запуска по частям.
Что скажешь?

@artbear
Copy link
Copy Markdown
Member

artbear commented Feb 6, 2015

Также ИМХО зря удалил метод ДеревоТестовПриАктивизацииСтроки.
Это мелкая полезная фича - если несколько тестов выделено, один текст команды в меню, если один тест, то другой текст.
Пусть остается.

@artbear
Copy link
Copy Markdown
Member

artbear commented Feb 6, 2015

Еще: неужели асинхронность появилась только в 8.3.5.1383 ?
Могу ошибаться, но ИМХО она раньше появилась.
Это к строке
ЕстьПоддержкаАсинхронныхВызовов = (СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.5.1383") >= 0);

@artbear
Copy link
Copy Markdown
Member

artbear commented Feb 6, 2015

А к остальному у меня претензий нет :)
Отличная работа!

Поправишь замечания?

@ValeraS
Copy link
Copy Markdown
Contributor Author

ValeraS commented Feb 6, 2015

По порядку:

  1. Перемешивалось плохо, при двух подряд идущих запусках прерывал выполнение тестов и видел картину, что выполненные тесты "кучкуются". Предложенный алгоритм, дает лучшее перемешивание.
  2. В большинстве методов сделаны косметические изменения: приведены отступы к единому стандарту (табуляция), удалены лишние пробельные символы в конце строк и т.п.
  3. по поводу сброса состояния перед выполнением, до исправления было, если какой-то тест падал а потом его исправишь и он выполняется без ошибки, то состояние изменялось только для теста, а состояние папок оставалось прежним. Тут по разному можно рассуждать, например, что запуская какие-то тесты, хочется видеть результат их выполнения, и чтобы предыдущие результаты не отвлекали.
  4. Кажется, бесполезная функция, а при этом происходит постоянное обращение к серверу. Выделяешь последовательно несколько тестов а оно начинает подвисать. А из текста "Выполнить выделенные тесты" и так следует, что выполнится только один выделенный тест.
  5. Не модальные окна появились начиная с 8.3.3.641, а асинхронная работа с файлами с 8.3.5.1383 http://v8.1c.ru/o7/201412async/index.htm

@artbear
Copy link
Copy Markdown
Member

artbear commented Feb 6, 2015

П. 4 разве там было обращение к серверу?

@ValeraS
Copy link
Copy Markdown
Contributor Author

ValeraS commented Feb 6, 2015

При изменении заголовка пункта меню в управляемых формах платформа автоматом вызывает сервер.

@artbear
Copy link
Copy Markdown
Member

artbear commented Feb 6, 2015

Лады, все принимается.
Но остался последний вопрос - файл в какой версии сохранял? в 8.3.или 8.2?
откроется ли в 8.2.17, например?

@ValeraS
Copy link
Copy Markdown
Contributor Author

ValeraS commented Feb 6, 2015

Сохранял в 8.3.5, в 8.2.19 открывается.

@artbear
Copy link
Copy Markdown
Member

artbear commented Feb 7, 2015

Если сохранял в 8.3,то в 8.2 ниже 8.2.19 не откроется :(
пересохрани в 8.2.19 и тогда откроется.
Зальешь сюда новую версию с 8.2.19?

…естов в дереве.

Если запускались на выполнения выделенные тесты, то состояния устанавливаются не выше уровня выделенных строк.
При сворачивании/разворачивании не учитываются строки с состоянием "Не исполнялся".
@ValeraS
Copy link
Copy Markdown
Contributor Author

ValeraS commented Feb 7, 2015

Внес небольшое исправление и сохранил в 8.2.19

@artbear
Copy link
Copy Markdown
Member

artbear commented Feb 8, 2015

После этого исправления, если запустить все вложенные тесты любой тест.набора/каталога наборов, вложенные тесты изменят свое состояние, а вот родители не изменят. А это неудобно для пользователя.
ИМХО ранее было лучше - в этом случае все родители изменят свое состояние.
Прошу вернуть, как было, не забыв про сохранение в 8.2.19, или давай обсудим, если не устраивает старое поведение.

@artbear
Copy link
Copy Markdown
Member

artbear commented Feb 8, 2015

Не совсем точно выразился - полностью возвращать весь код не нужно, другие части исправления мне нравятся :)
а вот вышеописанное поведение хочется вернуть!

@ValeraS
Copy link
Copy Markdown
Contributor Author

ValeraS commented Feb 8, 2015

Если запустить все тесты поведение осталось прежним (статусы поменяются у всех папок). Если запускать только выбранные, то статусы будут устанавливаться вплоть до выбранного уровня. То есть если выбрали папку с тестами, то после прохождения тестов статус у выбранной папки поменяется, у папки выше уровнем нет. На пример, есть структура папок:

  • Tests
    • CommonApp
    • ManagedApp
      • selftests
        • ТестыПроверить
          • ...
          • ...
      • ТестНаКлиенте
        • ...
        • ...

Если на выполнение выбрать папку selftests, то, после выполнения тестов, состояние поменяется у всех вложенных папок и у самой папки selftests, а у MannagedApp состояние не изменится.

@ValeraS
Copy link
Copy Markdown
Contributor Author

ValeraS commented Feb 8, 2015

Предыдущее поведение было таким, если выполнить выбранный вложенный набор тестов и он выполнился успешно, то состояния устанавливалось у всех родителей данного набора, и путь от корня до теста сворачивался. Чтобы запустить следующий набор тестов, находящийся рядом с предыдущим, нужно было снова искать его в иерархии папок, что, кажется, не удобным. Так же, если была папка у которой установилось состояние "Сломался", то даже если все поломанные тесты починить, то состояние папки не изменялось.

Если отменять новое поведение, то также нужно отменить и сброс состояния перед запуском тестов.

@ValeraS
Copy link
Copy Markdown
Contributor Author

ValeraS commented Feb 8, 2015

Предлагаю такой вариант, состояния тестов не сбрасываются, но если в папке есть тесты, которые не выполнялись, то её состояние не будет меняться.

- предыдущиие состояния выполнения тестов не сбрасываются;
- если в папке есть тесты которые ещё ни разу не запускали, то у папки состояние не изменяется;
- если в папке пройдены все тесты, то состояние папки будет худшим из состояний вложенных тестов;
- если при очередном запуске вложенных тестов худшее состояние изменилось, то сотояние папки меняется на новое состояние.
@artbear artbear merged commit 0940675 into xDrivenDevelopment:develop Feb 8, 2015
artbear added a commit that referenced this pull request Feb 8, 2015
@artbear
Copy link
Copy Markdown
Member

artbear commented Feb 8, 2015

Принято.Закрыто.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants