Я пытаюсь ускорить интеграционные тесты в нашей среде. Все наши классы автоматически подключены. В нашем файле applicationContext.xml мы определили следующее:
<context:annotation-config/>
<context:component-scan base-package="com.mycompany.framework"/>
<context:component-scan base-package="com.mycompany.service"/>
...additional directories
Я заметил, что Spring сканирует все указанные выше каталоги, а затем выполняет итерацию по каждому bean-компоненту и кэширует свойства каждого из них. (Я просмотрел сообщения DEBUG от spring)
В результате следующий тест выполняется примерно за 14 секунд:
public class MyTest extends BaseSpringTest {
@Test
def void myTest(){
println "test"
}
}
Есть ли способ отложить загрузку конфигурации? Я попытался добавить default-lazy-init = "true"
, но это не сработало.
В идеале создаются экземпляры только bean-компонентов, необходимых для теста.
заранее спасибо.
Обновление : я должен был сказать об этом раньше, я не хочу иметь файл контекста для каждого теста. Я также не думаю, что один файл контекста только для тестов подойдет. $ elist = массив (); foreach ($ allfiles как $ file) {$ lines = array_merge ($ elist, file ($ file, FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES)); } Он записывает номер в файл и не добавляет его, даже когда я обхожу переключатель добавления ниже и обнуляю оператор, который не выполняет ..
/****Write the entry if no match******/
if ($nodupe != "y"){
if($append == "n"){
$name .= $searchforthis."\n";
file_put_contents($filepath.$writefile.".txt", $name, LOCK_EX);
}
else{
file_put_contents($filepath.$writefile.".txt", $name, FILE_APPEND | LOCK_EX);
}
}