Я запускаю JUnit 4 с AnyLogic. В одном из моих тестов мне нужен доступ к тесту Experiment
. Есть ли какой-либо чистый способ доступа к нему во время выполнения? Например, существует ли статический метод вдоль линий Experiment.getRunningExperiment()
?Получение текущего экземпляра эксперимента во время выполнения
ответ
Существует не статический метод, о котором я знаю (и, если бы это было возможно, это могло бы быть осложнено многозадачными экспериментами, которые допускают параллельное выполнение, хотя, возможно, не так, поскольку есть еще один эксперимент, хотя проблемы с точки зрения безопасности).
Однако вы можете использовать getEngine().getExperiment()
от в пределах модель. Вероятно, вам нужно больше объяснить свой контекст использования. Если вы используете AnyLogic Pro и экспортируете модель для автономной работы, вы должны иметь доступ к экземпляру эксперимента в любом случае (как в справке «Запуск модели извне без интерфейса»).
Вы пытаетесь запустить тесты JUnit от в пределах Эксперимент? Если да, каков ваш общий дизайн? Очевидно, что JUnit не сидит в этом сценарии, так как он «ожидает» создавать и запускать тестируемую вещь. Для моих автоматизированных тестов (где я не могу экспортировать его автономно, потому что я не использую AnyLogic Pro), я решил, что было проще избежать JUnit (это всего лишь основа для всех) и реализовать тесты «напрямую» (путем мои компоненты модели записывают выходные данные, а в конце прогона в эксперименте эксперимент сравнивает выходы с предварительно подготовленными ожидаемыми и показывает флаг, если тест прошел или не прошел). С AnyLogic Pro вы все равно можете экспортировать автономную версию и использовать JUnit для запуска экспериментов «уже-тест» (с тестом JUnit, который проверяет эксперимент на testPassed
Boolean, установленный в конце или что-то еще).
Факт, что вы хотите получить работает экспериментов предполагает, что вы потенциально делаете это, в то время как запуска потенциально выполняются. Если да, не могли бы вы немного объяснить свои требования?
- 1. Добавить атрибуты экземпляра объекта во время выполнения
- 2. Получение экземпляра компонента в явном виде во время выполнения
- 3. получение возвращаемого значения типа метода экземпляра во время выполнения
- 4. Получение NoSuchMethodError во время выполнения
- 5. Получение java.lang.UnsatisfiedLinkError во время выполнения
- 6. Change MovieClip имя экземпляра во время выполнения
- 7. как изменить тип экземпляра во время выполнения
- 8. получить имя экземпляра объекта во время выполнения
- 9. Динамически менять класс экземпляра во время выполнения?
- 10. Выберите поведение экземпляра во время выполнения
- 11. Сделать методы экземпляра приватными во время выполнения
- 12. Получение пространства имен @XmlType во время выполнения
- 13. Получение типа шаблона во время выполнения
- 14. Получение быстрой ошибки во время выполнения (NSException)
- 15. Получение RGB во время выполнения из цветного
- 16. Получение ошибки SSIS во время выполнения
- 17. RobotFramework: получение результатов теста во время выполнения
- 18. Получение исключение ArrayIndexOutOfBoundsException во время выполнения
- 19. Получение ошибки во время выполнения хранимой процедуры
- 20. Получение параметров отладки во время выполнения
- 21. Получение ошибки во время выполнения недостающего файла
- 22. Получение ошибки во время выполнения процедуры
- 23. Получение имени связанного поля во время выполнения
- 24. Получение параметров типа во время выполнения
- 25. Получение идентификатора подписи кода во время выполнения?
- 26. Получение высоты завышенного Linearlayout во время выполнения
- 27. Получение вывода процесса во время выполнения
- 28. Получение компонентов jpanel во время выполнения
- 29. Получение элементов объекта во время выполнения
- 30. Получение ошибки во время выполнения Пакет
Я запускаю тесты JUnit из эксперимента, да. Я не использую его для тестирования модели в целом: я использую ее для тестирования компонентов модели *. (В конце концов, это цель JUnit и модульного тестирования в целом). Мои тесты отключают людей, здания, подсистемы , и т. д. от остальной части модели и протестировать их индивидуально. Для не-Агентов это легко. Для Агентов, ну, это заняло некоторое время. Я бы использовал 'getEngine()' на них, но проблема в том, что я должен дать им «Двигатель», в первую очередь, поэтому мне нужен вызов. Сейчас у меня есть рабочее «решение», но это, безусловно, взлом. –
OK; Я предположил, что вы являетесь компонентами тестирования модулей. Но вы можете настроить агентов верхнего уровня, которые просто составят тестируемые компоненты (с использованием фальшивых/mock-агентов/объектов), и, поскольку они выполняются в эксперименте, они имеют доступ к экземпляру Engine. Затем имейте выходные файлы, необходимые для вашего теста (например, используя ведение журнала Java) и/или используйте простые Java-утверждения. –
Но я согласен с тем, что было бы здорово, если бы вы могли заставить JUnit работать внутри Эксперимента, а это просто «оболочка», чтобы называть его. Вероятно, вам нужно больше объяснить свой дизайн, чтобы подумать о том, что может быть возможно; например, как вы создаете экземпляр агентов, если они не содержатся непосредственно в другом агенте? В любом случае, я очень заинтересован в вашей архитектуре, поэтому не стесняйтесь писать мне отдельно. –