提交 a08cb7c7 编写于 作者: 小代码2016's avatar 小代码2016

从路径加载 xml

上级 f2126927
......@@ -20,6 +20,7 @@ SUB_COMMAND_RE_BUILD = 'rebuild'
SUB_COMMAND_RUN = 'run'
SUB_COMMAND_TEST = 'test'
ARG_TEST_TC = 'tc'
SUB_COMMAND_CLEAN = 'clean'
......@@ -38,6 +39,7 @@ def register_run_args():
def register_test_args():
test_parsers = subparsers.add_parser(SUB_COMMAND_TEST, help='测试')
test_parsers.add_argument(ARG_PREFIX + KEY_CM_ACTION, help='动作类型', default=SUB_COMMAND_TEST)
test_parsers.add_argument(ARG_PREFIX + ARG_TEST_TC, help='测试用例', required=False)
def register_clean_args():
test_parsers = subparsers.add_parser(SUB_COMMAND_CLEAN, help='清理')
......@@ -76,12 +78,16 @@ def execute_run():
else:
os.system('./bin/' + app_name)
def execute_test():
def execute_test(tc):
command = None
execute_build()
if is_windows():
os.system(".\\bin\\Release\\" + app_test_name)
command = ".\\bin\\Release\\" + app_test_name
else:
os.system('./bin/' + app_test_name)
command = './bin/' + app_test_name
if tc :
command = command + ' -tc=' + tc
os.system(command)
def execute_clean():
if is_windows():
......@@ -108,8 +114,11 @@ if __name__ == '__main__':
register_clean_args()
args = parser.parse_args()
print(args)
if 0 == len(args.__dict__):
execute_test()
tc = args.__dict__[ARG_TEST_TC]
execute_test(tc)
else:
if SUB_COMMAND_BUILD == args.__dict__[KEY_CM_ACTION]:
execute_build()
......@@ -118,6 +127,7 @@ if __name__ == '__main__':
if SUB_COMMAND_RUN == args.__dict__[KEY_CM_ACTION]:
execute_run()
if SUB_COMMAND_TEST == args.__dict__[KEY_CM_ACTION]:
execute_test()
tc = args.__dict__[ARG_TEST_TC]
execute_test(tc)
if SUB_COMMAND_CLEAN == args.__dict__[KEY_CM_ACTION]:
execute_clean()
......@@ -12,7 +12,7 @@
#define STR2(x) STR(x)
std::string getXmlPath(const char* xmlFileName)
inline std::string getXmlPath(const char* xmlFileName)
{
std::string xmlPath;
std::stringstream ss;
......
......@@ -12,7 +12,7 @@
#define STR2(x) STR(x)
std::string getXmlPath(const char* xmlFileName)
inline std::string getXmlPath(const char* xmlFileName)
{
std::string xmlPath;
std::stringstream ss;
......
#include "doctest/doctest.h"
#include "tinyxml2.h"
#include "spdlog/spdlog.h"
#include "khl_xml_config/khl_xml_config.hpp"
TEST_CASE("tinyxml2_load")
{
std::string simpleXmlPath;
tinyxml2::XMLDocument doc;
tinyxml2::XMLError xmlError;
/**
* 指定路径加载
*/
SUBCASE("load_by_path")
{
simpleXmlPath = getXmlPath("/data/simple.xml");
xmlError = doc.LoadFile(simpleXmlPath.c_str());
CHECK(tinyxml2::XMLError::XML_SUCCESS == xmlError);
}
/**
* 指定路径加载
*/
SUBCASE("load_by_path_file_not_found")
{
simpleXmlPath = getXmlPath("/data/simple.not.exist.xml");
xmlError = doc.LoadFile(simpleXmlPath.c_str());
CHECK(tinyxml2::XMLError::XML_ERROR_FILE_NOT_FOUND == xmlError);
}
}
\ No newline at end of file
......@@ -19,25 +19,7 @@ TEST_CASE("test 001")
CHECK(3 == add(1, 2));
}
TEST_CASE("test 002")
{
spdlog::info("test 002");
std::string simpleXmlPath = getXmlPath("/data/simple.xml");
tinyxml2::XMLDocument doc;
tinyxml2::XMLError xmlError = doc.LoadFile(simpleXmlPath.c_str());
CHECK(tinyxml2::XMLError::XML_SUCCESS == xmlError);
auto rootEl = doc.RootElement();
auto personEl = rootEl->FirstChildElement("person");
const char * p = personEl->Attribute("id");
std::string str;
std::stringstream ss;
ss << p;
ss >> str;
CHECK("1001" == str);
}
TEST_CASE("test 003")
{
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册