Тестовый кейс Hyperledger Sawtooth XO зависает при исполнении
Я пытаюсь использовать nose2-3 для запуска модульных тестов sawtooth xo tp, но код зависает. Когда я Ctrl-C, отображается ниже. По сути, тестовый пример TP вызывает вызов для проверки ложного валидатора, и этот вызов никогда не возвращается, потому что ZMQ Poller чего-то ждет.
Я на Ubutnu 16 LTS использую Python 3.5.2 и перебазирован с помощью hyperledger/sawtooth-core на прошлой неделе, поэтому я запускаю простую конфигурацию с последним кодом.
Что я здесь не так делаю?
Благодарю.
envoy:~/git/sawtooth-core/sdk/examples/xo_python$ nose2-3 tests.test_tp_xo
^C
----------------------------------------------------------------------
Ran 0 tests in 2.608s
OK
Traceback (most recent call last):
File "/usr/bin/nose2-3", line 9, in <module>
load_entry_point('nose2==0.6.4', 'console_scripts', 'nose2')()
File "/usr/lib/python3/dist-packages/nose2/main.py", line 306, in discover
return main(*args, **kwargs)
File "/usr/lib/python3/dist-packages/nose2/main.py", line 100, in __init__
super(PluggableTestProgram, self).__init__(**kw)
File "/usr/lib/python3.5/unittest/main.py", line 94, in __init__
self.runTests()
File "/usr/lib/python3/dist-packages/nose2/main.py", line 271, in runTests
self.result = runner.run(self.test)
File "/usr/lib/python3/dist-packages/nose2/runner.py", line 53, in run
executor(test, result)
File "/usr/lib/python3/dist-packages/nose2/runner.py", line 41, in <lambda>
executor = lambda suite, result: suite(result)
File "/usr/lib/python3.5/unittest/suite.py", line 84, in __call__
return self.run(*args, **kwds)
File "/usr/lib/python3.5/unittest/suite.py", line 122, in run
test(result)
File "/usr/lib/python3.5/unittest/suite.py", line 84, in __call__
return self.run(*args, **kwds)
File "/usr/lib/python3.5/unittest/suite.py", line 122, in run
test(result)
File "/usr/lib/python3.5/unittest/suite.py", line 84, in __call__
return self.run(*args, **kwds)
File "/usr/lib/python3.5/unittest/suite.py", line 122, in run
test(result)
File "/usr/lib/python3.5/unittest/suite.py", line 84, in __call__
return self.run(*args, **kwds)
File "/usr/lib/python3.5/unittest/suite.py", line 114, in run
self._handleClassSetUp(test, result)
File "/usr/lib/python3.5/unittest/suite.py", line 163, in _handleClassSetUp
setUpClass()
File "/project/git/sawtooth-core/sdk/examples/xo_python/tests/test_tp_xo.py", line 29, in setUpClass
super().setUpClass()
File "/usr/lib/python3/dist-packages/sawtooth_processor_test/transaction_processor_test_case.py", line 31, in setUpClass
if not cls.validator.register_processor():
File "/usr/lib/python3/dist-packages/sawtooth_processor_test/mock_validator.py", line 128, in register_processor
message, ident = self.receive()
File "/usr/lib/python3/dist-packages/sawtooth_processor_test/mock_validator.py", line 187, in receive
self._receive()
File "/usr/lib/python3.5/asyncio/base_events.py", line 375, in run_until_complete
self.run_forever()
File "/usr/lib/python3.5/asyncio/base_events.py", line 345, in run_forever
self._run_once()
File "/usr/lib/python3.5/asyncio/base_events.py", line 1276, in _run_once
event_list = self._selector.select(timeout)
File "/usr/lib/python3/dist-packages/zmq/asyncio.py", line 232, in select
fd_event_list = self._zmq_poller.poll(timeout)
File "/usr/lib/python3/dist-packages/zmq/sugar/poll.py", line 99, in poll
return zmq_poll(self.sockets, timeout=timeout)
File "zmq/backend/cython/_poll.pyx", line 115, in zmq.backend.cython._poll.zmq_poll (zmq/backend/cython/_poll.c:1705)
File "zmq/backend/cython/checkrc.pxd", line 12, in zmq.backend.cython.checkrc._check_rc (zmq/backend/cython/_poll.c:2084)
KeyboardInterrupt
1 ответ
Ты пробовал бегать Dockerfile-tests-installed
в том же каталоге? Эти тесты предназначены главным образом для автоматического использования с полной настройкой среды тестирования. Увидеть Jenkinsfile
в каталоге верхнего уровня github.
Если вы просто хотите запустить его и попробовать, вы можете запустить его в Ubuntu или с помощью Docker, выполнив следующие инструкции: https://sawtooth.hyperledger.org/docs/core/releases/latest/app_developers_guide/installing_sawtooth.html
В основном вы устанавливаете Sawtooth, Docker, docker-compose и запускаете:docker-compose -f sawtooth-default.yaml up
Затем вы можете запускать команды Sawtooth из оболочки Docker с помощью:docker exec -it sawtooth-shell-default bash