, Когда Bash запускается, он выполняет команды во множестве различных сценариев.
, Когда Bash вызывается как интерактивная оболочка входа в систему, он сначала читает и выполняет команды из файла/etc/profile, если тот файл существует. После чтения того файла это ищет ~/.bash_profile, ~/.bash_login и ~/.profile, в том порядке, и читает и выполняет команды от первой, которая существует и читаема.
, Когда оболочка входа в систему выходит, Bash читает и выполняет команды из файла ~/.bash_logout, если это существует.
, Когда интерактивная оболочка, которая не является оболочкой входа в систему, запускается, Bash читает и выполняет команды от ~/.bashrc, если тот файл существует. Это может быть запрещено при помощи - norc опция. - rcfile опция файла вынудит Bash считать и выполнить команды из файла вместо ~/.bashrc.
В JUnit 4 вы захотите посмотреть параметризованный бегун . Он был создан для той цели, которую вы описываете (тесты на основе данных). Однако он не объединяет их в наборы.
В Junit 3 вы можете создавать TestSuites и Tests программно. Ответ находится в Junit Recipes , которые я могу расширить, если вам это нужно (помните, что JUnit 4 может запускать тесты Junit 3).
Рассматривали ли вы возможность использования FIT для этого?
Кажется, у вас уже есть таблицы, и «бизнес-правила» звучат так, будто «деловые люди пишут их, используя Excel. ".
FIT - это система для проверки тестов, основанная на таблицах с сопоставлениями вход-> ожидаемый выход, и доступна библиотека Java с открытым исходным кодом для запуска этих тестов.
Мы попробовали FIT и решили использовать Concordion . Основные преимущества этой библиотеки:
Я написал нечто очень похожее, используя JUnit. У меня было большое количество тестовых примеров (30 страниц) в XML-файле. Вместо того, чтобы пытаться сгенерировать разные тесты, я проделал все это в одном тесте, который работал отлично.
Мой тест выглядел примерно так:
void setup() {
cases = read in the xml file
}
void test_fn_works() {
for case in cases {
assert(case.expected_result, fn(case.inputs),
'Case ' + case.inputs + ' should yield ' + case.expected_result);
}
}
С Ruby я сделал именно то, что вы говорите - сгенерировал тесты на муха. Однако сделать это на Java сложно, и я не думаю, что это того стоит, поскольку есть другой, вполне разумный подход.
Надеюсь, это поможет.