Я просто скопировал ваш MyExtension
дословно (т. е. с нулевыми изменениями) и запустил оба FooTest
и BarTest
.
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@ExtendWith(MyExtension.class)
class FooTest {
@Test
void test() {
}
}
и
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@ExtendWith(MyExtension.class)
class BarTest {
@Test
void test() {
}
}
И результат:
org.junit.jupiter.engine.descriptor.JupiterEngineExtensionContext@2280cdac
org.junit.jupiter.engine.descriptor.JupiterEngineExtensionContext@2280cdac
Found it, no need to store anything again!
Таким образом, getRoot()
работает как задокументировано.
Единственное объяснение того, почему вы видите два разных корня, заключается в том, что вы должны выполнять тесты в различные процессы.
Пожалуйста, имейте в виду, что экземпляр root ExtensionContext
привязан к текущему исполнению вашего тестового набора.
Итак, если вы запустите FooTest
и BarTest
один за другим в среде IDE, что фактически приведет к двум «тестовым наборам» с разными корнями. То же самое верно, если вы настроите свой инструмент построения на fork между тестовыми классами.
Принимая во внимание, что если вы выполняете оба тестовых класса вместе в одном «наборе тестов» (например, сообщая вашей среде IDE, чтобы запускать все тесты в одном и том же пакете или в одном исходном дереве), вы увидите, что есть один корень, как в вышеприведенном выше выпуске.
Обратите внимание, однако, что возникла проблема с junit-platform-surefire-provider
до версии 1.0.3, посредством чего провайдер запустил платформу JUnit для каждого тестового класса. Это дало бы появление forking , хотя Surefire фактически не запускал новый процесс JVM. Подробнее см. В https://github.com/junit-team/junit5/pull/1137 .
Вам также нужно для перезагрузки всех пакетов для решения проблемы разветвления, для этого напишите:
После этого вы можете использовать недоступную без проблем (надеюсь, у вас будет такая же ситуация, как и я, поскольку она работает для меня)
I t потратил много дней на поиск и попытку решить проблему установки на Windows 10 Home Edtion
Предполагается, что Cygwin установлен:
alias cyg-get="/path/to/cygwin/setup/package/setup-x86_64.exe -q -P"
cyg-get cygwin32-gcc-g++,gcc-core,gcc-g++,git,libffi-devel,nano,openssl,openssl-devel,python-crypto,python3,python3-devel,python3-openssl,python3-pip,python3-setuptools,python3-devel,tree,wget,zip,make
pip
через pip3 install --upgrade pip
pip install ansible
Примечания :
Псевдоним cyg-get
позволяет вам устанавливать все пакеты через командную строку вместо поиска в пользовательском интерфейсе Cygwin.
. В доступной установке включен шаг «Запуск setup.py bdist_wheel for pynacl "- это занимает не менее получаса, но в конце концов завершается.
Попробуйте эту apt-get удалить python-криптографию, также вам может потребоваться установить paramiko-1.10.0.tar.gz вручную.
➤ ansible --version ansible 2.1.0
Хотя Ansible может работать в Cygwin, обратите внимание, что он официально не поддерживается, и похоже, что это будет в ближайшем будущем.
Примечание. Бег с управляющей машины Windows НЕ является целью проекта. Не обращайте внимания на эту функцию, поскольку она ограничивает, какие технологии, функции и код мы можем использовать в основном проекте в будущем. Для управления хостами Windows потребуется компьютер управления Linux.
Cygwin не поддерживается, поэтому, пожалуйста, не задавайте вопросов о Ansible running from Cygwin.
blockquote>В качестве альтернативы рассмотрим запуск виртуальной машины Linux на вашем хосте Windows и использование этого в качестве вашего контроллера Ansible.
Гораздо проще:
#!/bin/sh
type apt-cyg || exit
apt-cyg install git python-{jinja2,six,yaml}
git clone --depth 1 git://github.com/ansible/ansible
cd ansible
PATH+=:~+/bin
export PYTHONPATH=~+/lib
ansible --version
Результат
ansible 2.0.0 (devel 2a50957ad8) last updated 2015/09/15 21:22:17 (GMT -500)