hyperskill / hs-test

A framework that simplifies testing educational projects for Hyperskill. It is built on top of JUnit.
31 stars 10 forks source link

Changed initialIdleWait default to false #135

Closed polischuks closed 1 year ago

polischuks commented 1 year ago

Added Getter/Setter for initialIdleWait

Task: #HSPC-61

Dependencies

Reviewers

Description

inuur commented 1 year ago

@polischuks тесты не имеют доступа к конкретному объекту класса ProcessWrapper, поэтому не получится ничего там изменить через геттеры и сеттеры.

Нужно этот параметр сделать статическим и публичным, чтобы к нему можно было обращаться по имени класса. А уже в тестах можно будет через static блок менять значение поля. И это значение в дальнейшем будет использоваться во всех инстансах этого класса.

...

static {
    ProcessWrapper.initialIdleWait = false;
}

...
polischuks commented 1 year ago

@inuur тогда достаточно public static boolean initialIdleWait = false;

inuur commented 1 year ago

@polischuks да, так и надо сделать

inuur commented 1 year ago

@polischuks initialIdleWaitTime тоже давай сделаем статическим, вдруг в будущем тоже потребуется менять через тесты.

aaaaaa2493 commented 1 year ago

@inuur Расскажешь зачем, вкратце, пожалуйста?

inuur commented 1 year ago

@aaaaaa2493 привет, есть проект, в котором программа запускается и сразу ждет ввода, но тестовая библиотека начинает подавать ввод только через минимум 1.5 секунды. А там таких тест кейсов 150+, и по тому очень долго все работает.

Вот хотим иметь возможность, выборочно отключать это ожидание. И если вдруг что-то не будет работать, то просто сможем быстренько откатиться к дефолтным значениям.

А можешь тоже вкратце рассказать для чего была создана эта задержка? А то сразу непонятно какую проблему она решает.

aaaaaa2493 commented 1 year ago

@inuur многие программы слишком долго запускаются. Настолько долго, что библиотека думает, что программа уже ждёт ввода. Например, Django или Bash

inuur commented 1 year ago

@aaaaaa2493 понял, конкретно сейчас проблема с GoLang проектом, там все запускается быстро, так что эту задержку можно отключить.

Теперь стало яснее, спасибо!

aaaaaa2493 commented 1 year ago

Лучше конечно по дефолту включенным оставить, а выборочно отключать. Также не стоит забывать, что в общем случае с помощью библиотеки должно быть возможно параллельно тестировать разные проекты, и статические переменные этому мешают. Лучше делать через какие-нибудь настройки

inuur commented 1 year ago

@aaaaaa2493 да это мой косяк, планировалось оставить дефолтным значением true, спасибо, что заметил. @polischuks исправь, пожалуйста на true.

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

Пока что в планах такого нет, поэтому пока оставим статическим