如何给arcanist添加一个自定义的unit-engine
How to add a self-defined unit-engine to arcanist
我正在使用 arc 作为代码审查工具。 bin/arc 不在 git 仓库中,但我想在 git 仓库中添加一个测试引擎。
因此,我在测试引擎中创建目录测试引擎:
__phutil_library_init__.php
__phutil_library_map__.php,
src/PyEngine.php
phutil_library_init.php:
<?php
phutil_register_library('PyEngine', __FILE__);
the __phutil_library_map__.php:
phutil_register_library_map(array(
'__library_version__' => 2,
'class' =>
array(
'PyEngine' => 'src/PyEngine.php',
),
'function' =>
array(
),
'xmap' =>
array(
'PyEngine' => 'ArcanistUnitTestEngine',
),
));
.arcconfig:
{
"phabricator.uri" : "blabla",
"load" : [
"test-engine"
],
"unit.engine" : "PyEngine"
}
但是当我运行弧形单元时,报错:
phutil_register_library_map(array(
'__library_version__' => 2,
'class' =>
array(
'PyEngine' => 'src/PyEngine.php',
),
'function' =>
array(
),
'xmap' =>
array(
'PyEngine' => 'ArcanistUnitTestEngine',
),
));[2015-09-08 09:11:55] ERROR 8: Undefined index: PyEngine at [~/Documents/codes/arcanist/libphutil/src/moduleutils/PhutilBootloader.php:136]
PyEngine(head=dev, ref.master=fc7de2baac4e, ref.dev=615bad5693e1), arcanist(head=master, ref.master=968f4ae5d73e), phutil(head=master, ref.master=55f554b618b9)
#0 PhutilBootloader::getLibraryMap(string) called at [<phutil>/src/symbols/PhutilSymbolLoader.php:194]
#1 PhutilSymbolLoader::selectAndLoadSymbols() called at [<phutil>/src/moduleutils/PhutilBootloader.php:78]
#2 PhutilBootloader::registerLibrary(string, string) called at [<phutil>/src/moduleutils/core.php:4]
#3 phutil_register_library(string, string) called at [<PyEngine>/__phutil_library_init__.php:3]
#4 include_once(string) called at [<phutil>/src/moduleutils/PhutilBootloader.php:226]
#5 PhutilBootloader::executeInclude(string) called at [<phutil>/src/moduleutils/PhutilBootloader.php:207]
#6 PhutilBootloader::loadLibrary(string) called at [<phutil>/src/moduleutils/core.php:12]
#7 phutil_load_library(string) called at [<arcanist>/scripts/arcanist.php:611]
#8 arcanist_load_libraries(array, boolean, string, ArcanistWorkingCopyIdentity) called at [<arcanist>/scripts/arcanist.php:162]
phutil_register_library_map(array(
'__library_version__' => 2,
'class' =>
array(
'PyEngine' => 'src/PyEngine.php',
),
'function' =>
array(
),
'xmap' =>
array(
'PyEngine' => 'ArcanistUnitTestEngine',
),
));[2015-09-08 09:11:55] ERROR 8: Undefined index: PyEngine at [~/Documents/codes/arcanist/libphutil/src/moduleutils/PhutilBootloader.php:136]
PyEngine(head=dev, ref.master=fc7de2baac4e, ref.dev=615bad5693e1), arcanist(head=master, ref.master=968f4ae5d73e), phutil(head=master, ref.master=55f554b618b9)
#0 PhutilBootloader::getLibraryMap(string) called at [<phutil>/src/symbols/PhutilSymbolLoader.php:194]
#1 PhutilSymbolLoader::selectAndLoadSymbols() called at [<phutil>/src/__phutil_library_init__.php:22]
#2 __phutil_autoload(string)
#3 spl_autoload_call(string)
#4 call_user_func_array(array, array) called at [<phutil>/src/console/format.php:7]
#5 phutil_console_format(string, string) called at [<arcanist>/scripts/arcanist.php:413]
[2015-09-08 09:11:55] EXCEPTION: (Exception) libphutil v1 libraries are no longer supported. at [<phutil>/src/moduleutils/PhutilBootloader.php:144]
PyEngine(head=dev, ref.master=fc7de2baac4e, ref.dev=615bad5693e1), arcanist(head=master, ref.master=968f4ae5d73e), phutil(head=master, ref.master=55f554b618b9)
#0 PhutilBootloader::getLibraryMap(string) called at [<phutil>/src/symbols/PhutilSymbolLoader.php:194]
#1 PhutilSymbolLoader::selectAndLoadSymbols() called at [<phutil>/src/__phutil_library_init__.php:22]
#2 __phutil_autoload(string)
#3 spl_autoload_call(string)
#4 call_user_func_array(array, array) called at [<phutil>/src/console/format.php:7]
#5 phutil_console_format(string, string) called at [<arcanist>/scripts/arcanist.php:413]
如何正确添加单位引擎?
添加 class 后,您是否再次 运行 arc liberate
(并且它最初用于实际创建您的库)?
你可以在这里得到一些信息(这还没有得到官方支持):
https://secure.phabricator.com/book/phabcontrib/article/adding_new_classes/
我正在使用 arc 作为代码审查工具。 bin/arc 不在 git 仓库中,但我想在 git 仓库中添加一个测试引擎。 因此,我在测试引擎中创建目录测试引擎:
__phutil_library_init__.php
__phutil_library_map__.php,
src/PyEngine.php
phutil_library_init.php:
<?php
phutil_register_library('PyEngine', __FILE__);
the __phutil_library_map__.php:
phutil_register_library_map(array(
'__library_version__' => 2,
'class' =>
array(
'PyEngine' => 'src/PyEngine.php',
),
'function' =>
array(
),
'xmap' =>
array(
'PyEngine' => 'ArcanistUnitTestEngine',
),
));
.arcconfig:
{
"phabricator.uri" : "blabla",
"load" : [
"test-engine"
],
"unit.engine" : "PyEngine"
}
但是当我运行弧形单元时,报错:
phutil_register_library_map(array(
'__library_version__' => 2,
'class' =>
array(
'PyEngine' => 'src/PyEngine.php',
),
'function' =>
array(
),
'xmap' =>
array(
'PyEngine' => 'ArcanistUnitTestEngine',
),
));[2015-09-08 09:11:55] ERROR 8: Undefined index: PyEngine at [~/Documents/codes/arcanist/libphutil/src/moduleutils/PhutilBootloader.php:136]
PyEngine(head=dev, ref.master=fc7de2baac4e, ref.dev=615bad5693e1), arcanist(head=master, ref.master=968f4ae5d73e), phutil(head=master, ref.master=55f554b618b9)
#0 PhutilBootloader::getLibraryMap(string) called at [<phutil>/src/symbols/PhutilSymbolLoader.php:194]
#1 PhutilSymbolLoader::selectAndLoadSymbols() called at [<phutil>/src/moduleutils/PhutilBootloader.php:78]
#2 PhutilBootloader::registerLibrary(string, string) called at [<phutil>/src/moduleutils/core.php:4]
#3 phutil_register_library(string, string) called at [<PyEngine>/__phutil_library_init__.php:3]
#4 include_once(string) called at [<phutil>/src/moduleutils/PhutilBootloader.php:226]
#5 PhutilBootloader::executeInclude(string) called at [<phutil>/src/moduleutils/PhutilBootloader.php:207]
#6 PhutilBootloader::loadLibrary(string) called at [<phutil>/src/moduleutils/core.php:12]
#7 phutil_load_library(string) called at [<arcanist>/scripts/arcanist.php:611]
#8 arcanist_load_libraries(array, boolean, string, ArcanistWorkingCopyIdentity) called at [<arcanist>/scripts/arcanist.php:162]
phutil_register_library_map(array(
'__library_version__' => 2,
'class' =>
array(
'PyEngine' => 'src/PyEngine.php',
),
'function' =>
array(
),
'xmap' =>
array(
'PyEngine' => 'ArcanistUnitTestEngine',
),
));[2015-09-08 09:11:55] ERROR 8: Undefined index: PyEngine at [~/Documents/codes/arcanist/libphutil/src/moduleutils/PhutilBootloader.php:136]
PyEngine(head=dev, ref.master=fc7de2baac4e, ref.dev=615bad5693e1), arcanist(head=master, ref.master=968f4ae5d73e), phutil(head=master, ref.master=55f554b618b9)
#0 PhutilBootloader::getLibraryMap(string) called at [<phutil>/src/symbols/PhutilSymbolLoader.php:194]
#1 PhutilSymbolLoader::selectAndLoadSymbols() called at [<phutil>/src/__phutil_library_init__.php:22]
#2 __phutil_autoload(string)
#3 spl_autoload_call(string)
#4 call_user_func_array(array, array) called at [<phutil>/src/console/format.php:7]
#5 phutil_console_format(string, string) called at [<arcanist>/scripts/arcanist.php:413]
[2015-09-08 09:11:55] EXCEPTION: (Exception) libphutil v1 libraries are no longer supported. at [<phutil>/src/moduleutils/PhutilBootloader.php:144]
PyEngine(head=dev, ref.master=fc7de2baac4e, ref.dev=615bad5693e1), arcanist(head=master, ref.master=968f4ae5d73e), phutil(head=master, ref.master=55f554b618b9)
#0 PhutilBootloader::getLibraryMap(string) called at [<phutil>/src/symbols/PhutilSymbolLoader.php:194]
#1 PhutilSymbolLoader::selectAndLoadSymbols() called at [<phutil>/src/__phutil_library_init__.php:22]
#2 __phutil_autoload(string)
#3 spl_autoload_call(string)
#4 call_user_func_array(array, array) called at [<phutil>/src/console/format.php:7]
#5 phutil_console_format(string, string) called at [<arcanist>/scripts/arcanist.php:413]
如何正确添加单位引擎?
添加 class 后,您是否再次 运行 arc liberate
(并且它最初用于实际创建您的库)?
你可以在这里得到一些信息(这还没有得到官方支持): https://secure.phabricator.com/book/phabcontrib/article/adding_new_classes/