Contents |
BOSS Test Report System provides a friendly interface for BOSS tool developers to run test and check test result.
The usage precondition(take running ruote tests as example):
The usage(take running ruote tests as example):

The source of ruote-test.sh
REPORT_ROOT=/home/boss/Downloads/meego-qa-reports
RUOTE_TEST_ROOT=/home/boss/Downloads/meego-infrastructure-tools-boss/ruote/ruote/test
RUOTE_FUNC_TEST=ruote-2.1-func-test
RUOTE_UNIT_TEST=ruote-2.1-unit-test
RUOTE_FUNC_TEST_RESULT=$RUOTE_FUNC_TEST-result
RUOTE_UNIT_TEST_RESULT=$RUOTE_UNIT_TEST-result
cd $RUOTE_TEST_ROOT
testrunner-lite -f $RUOTE_FUNC_TEST.xml -o $REPORT_ROOT/$RUOTE_FUNC_TEST_RESULT.xml
testrunner-lite -f $RUOTE_UNIT_TEST.xml -o $REPORT_ROOT/$RUOTE_UNIT_TEST_RESULT.xml
cd $REPORT_ROOT/
rake db:seed
rm $REPORT_ROOT/$RUOTE_FUNC_TEST_RESULT.xml
rm $REPORT_ROOT/$RUOTE_UNIT_TEST_RESULT.xml
The source of ruote functional test plan xml:
<suite name="ruote-func-suite">
<set name="ruote-func-set">
<case name="ct_0_concurrence.rb">
<description>A collision between two workers replying to the same concurrence expression.</description>
<step expected_result="0">ruby functional/ct_0_concurrence.rb</step>
</case>
<case name="ct_1_iterator.rb">
<description>Test proper handling of collisions between an iterator and another worker</description>
<step expected_result="0">ruby functional/ct_1_iterator.rb</step>
</case>
<case name="ct_2_cancel.rb">
<description></description>
<step expected_result="0">ruby functional/ct_2_cancel.rb</step>
</case>
<case name="eft_0_process_definition.rb">
<description></description>
<step expected_result="0">ruby functional/eft_0_process_definition.rb</step>
</case>
<case name="eft_10_cancel_process.rb">
<description></description>
<step expected_result="0">ruby functional/eft_10_cancel_process.rb</step>
</case>
<case name="eft_11_wait.rb">
<description></description>
<step expected_result="0">ruby functional/eft_11_wait.rb</step>
</case>
<case name="eft_12_listen.rb">
<description></description>
<step expected_result="0">ruby functional/eft_12_listen.rb</step>
</case>
<case name="eft_13_iterator.rb">
<description></description>
<step expected_result="0">ruby functional/eft_13_iterator.rb</step>
</case>
<case name="eft_14_cursor.rb">
<description></description>
<step expected_result="0">ruby functional/eft_14_cursor.rb</step>
</case>
<case name="eft_15_loop.rb">
<description></description>
<step expected_result="0">ruby functional/eft_15_loop.rb</step>
</case>
<case name="eft_16_if.rb">
<description></description>
<step expected_result="0">ruby functional/eft_16_if.rb</step>
</case>
<case name="eft_17_equals.rb">
<description></description>
<step expected_result="0">ruby functional/eft_17_equals.rb</step>
</case>
<case name="eft_18_concurrent_iterator.rb">
<description></description>
<step expected_result="0">ruby functional/eft_18_concurrent_iterator.rb</step>
</case>
<case name="eft_19_reserve.rb">
<description></description>
<step expected_result="0">ruby functional/eft_19_reserve.rb</step>
</case>
<case name="eft_1_echo.rb">
<description></description>
<step expected_result="0">ruby functional/eft_1_echo.rb</step>
</case>
<case name="eft_20_save.rb">
<description></description>
<step expected_result="0">ruby functional/eft_20_save.rb</step>
</case>
<case name="eft_21_restore.rb">
<description></description>
<step expected_result="0">ruby functional/eft_21_restore.rb</step>
</case>
<case name="eft_22_noop.rb">
<description></description>
<step expected_result="0">ruby functional/eft_22_noop.rb</step>
</case>
<case name="eft_23_apply.rb">
<description></description>
<step expected_result="0">ruby functional/eft_23_apply.rb</step>
</case>
<case name="eft_24_add_branches.rb">
<description></description>
<step expected_result="0">ruby functional/eft_24_add_branches.rb</step>
</case>
<case name="eft_25_command.rb">
<description></description>
<step expected_result="0">ruby functional/eft_25_command.rb</step>
</case>
<case name="eft_26_error.rb">
<description></description>
<step expected_result="0">ruby functional/eft_26_error.rb</step>
</case>
<case name="eft_27_inc.rb">
<description></description>
<step expected_result="0">ruby functional/eft_27_inc.rb</step>
</case>
<case name="eft_28_when.rb">
<description></description>
<step expected_result="0">ruby functional/eft_28_when.rb</step>
</case>
<case name="eft_29_cron.rb">
<description></description>
<step expected_result="0">ruby functional/eft_29_cron.rb</step>
</case>
<case name="eft_2_sequence.rb">
<description></description>
<step expected_result="0">ruby functional/eft_2_sequence.rb</step>
</case>
<case name="eft_30_ref.rb">
<description></description>
<step expected_result="0">ruby functional/eft_30_ref.rb</step>
</case>
<case name="eft_31_registerp.rb">
<description></description>
<step expected_result="0">ruby functional/eft_31_registerp.rb</step>
</case>
<case name="eft_32_lose.rb">
<description></description>
<step expected_result="0">ruby functional/eft_32_lose.rb</step>
</case>
<case name="eft_3_participant.rb">
<description></description>
<step expected_result="0">ruby functional/eft_3_participant.rb</step>
</case>
<case name="eft_4_set.rb">
<description></description>
<step expected_result="0">ruby functional/eft_4_set.rb</step>
</case>
<case name="eft_5_subprocess.rb">
<description></description>
<step expected_result="0">ruby functional/eft_5_subprocess.rb</step>
</case>
<case name="eft_6_concurrence.rb">
<description></description>
<step expected_result="0">ruby functional/eft_6_concurrence.rb</step>
</case>
<case name="eft_7_forget.rb">
<description></description>
<step expected_result="0">ruby functional/eft_7_forget.rb</step>
</case>
<case name="eft_8_undo.rb">
<description></description>
<step expected_result="0">ruby functional/eft_8_undo.rb</step>
</case>
<case name="eft_9_redo.rb">
<description></description>
<step expected_result="0">ruby functional/eft_9_redo.rb</step>
</case>
<case name="ft_0_worker.rb">
<description></description>
<step expected_result="0">ruby functional/ft_0_worker.rb</step>
</case>
<case name="ft_10_dollar.rb">
<description></description>
<step expected_result="0">ruby functional/ft_10_dollar.rb</step>
</case>
<case name="ft_11_recursion.rb">
<description></description>
<step expected_result="0">ruby functional/ft_11_recursion.rb</step>
</case>
<case name="ft_12_launchitem.rb">
<description></description>
<step expected_result="0">ruby functional/ft_12_launchitem.rb</step>
</case>
<case name="ft_13_variables.rb">
<description></description>
<step expected_result="0">ruby functional/ft_13_variables.rb</step>
</case>
<case name="ft_14_re_apply.rb">
<description></description>
<step expected_result="0">ruby functional/ft_14_re_apply.rb</step>
</case>
<case name="ft_15_timeout.rb">
<description></description>
<step expected_result="0">ruby functional/ft_15_timeout.rb</step>
</case>
<case name="ft_16_participant_params.rb">
<description></description>
<step expected_result="0">ruby functional/ft_16_participant_params.rb</step>
</case>
<case name="ft_17_conditional.rb">
<description></description>
<step expected_result="0">ruby functional/ft_17_conditional.rb</step>
</case>
<case name="ft_18_kill.rb">
<description></description>
<step expected_result="0">ruby functional/ft_18_kill.rb</step>
</case>
<case name="ft_19_alias.rb">
<description></description>
<step expected_result="0">ruby functional/ft_19_alias.rb</step>
</case>
<case name="ft_1_process_status.rb">
<description></description>
<step expected_result="0">ruby functional/ft_1_process_status.rb</step>
</case>
<case name="ft_20_storage_participant.rb">
<description></description>
<step expected_result="0">ruby functional/ft_20_storage_participant.rb</step>
</case>
<case name="ft_21_forget.rb">
<description></description>
<step expected_result="0">ruby functional/ft_21_forget.rb</step>
</case>
<case name="ft_22_process_definitions.rb">
<description></description>
<step expected_result="0">ruby functional/ft_22_process_definitions.rb</step>
</case>
<case name="ft_23_load_defs.rb">
<description></description>
<step expected_result="0">ruby functional/ft_23_load_defs.rb</step>
</case>
<case name="ft_24_block_participants.rb">
<description></description>
<step expected_result="0">ruby functional/ft_24_block_participants.rb</step>
</case>
<case name="ft_25_receiver.rb">
<description></description>
<step expected_result="0">ruby functional/ft_25_receiver.rb</step>
</case>
<case name="ft_26_participant_timeout.rb">
<description></description>
<step expected_result="0">ruby functional/ft_26_participant_timeout.rb</step>
</case>
<case name="ft_27_var_indirection.rb">
<description></description>
<step expected_result="0">ruby functional/ft_27_var_indirection.rb</step>
</case>
<case name="ft_28_null_noop_participants.rb">
<description></description>
<step expected_result="0">ruby functional/ft_28_null_noop_participants.rb</step>
</case>
<case name="ft_29_part_template.rb">
<description></description>
<step expected_result="0">ruby functional/ft_29_part_template.rb</step>
</case>
<case name="ft_2_errors.rb">
<description></description>
<step expected_result="0">ruby functional/ft_2_errors.rb</step>
</case>
<case name="ft_30_smtp_participant.rb">
<description></description>
<step expected_result="0">ruby functional/ft_30_smtp_participant.rb</step>
</case>
<case name="ft_31_part_blocking.rb">
<description></description>
<step expected_result="0">ruby functional/ft_31_part_blocking.rb</step>
</case>
<case name="ft_33_participant_subprocess_priority.rb">
<description></description>
<step expected_result="0">ruby functional/ft_33_participant_subprocess_priority.rb</step>
</case>
<case name="ft_34_cursor_rewind.rb">
<description></description>
<step expected_result="0">ruby functional/ft_34_cursor_rewind.rb</step>
</case>
<case name="ft_35_add_service.rb">
<description></description>
<step expected_result="0">ruby functional/ft_35_add_service.rb</step>
</case>
<case name="ft_36_storage_history.rb">
<description></description>
<step expected_result="0">ruby functional/ft_36_storage_history.rb</step>
</case>
<case name="ft_37_engine_participant.rb">
<description></description>
<step expected_result="0">ruby functional/ft_37_engine_participant.rb</step>
</case>
<case name="ft_38_participant_more.rb">
<description></description>
<step expected_result="0">ruby functional/ft_38_participant_more.rb</step>
</case>
<case name="ft_39_wait_for.rb">
<description></description>
<step expected_result="0">ruby functional/ft_39_wait_for.rb</step>
</case>
<case name="ft_3_participant_registration.rb">
<description></description>
<step expected_result="0">ruby functional/ft_3_participant_registration.rb</step>
</case>
<case name="ft_40_wait_logger.rb">
<description></description>
<step expected_result="0">ruby functional/ft_40_wait_logger.rb</step>
</case>
<case name="ft_41_participants.rb">
<description></description>
<step expected_result="0">ruby functional/ft_41_participants.rb</step>
</case>
<case name="ft_42_storage_copy.rb">
<description></description>
<step expected_result="0">ruby functional/ft_42_storage_copy.rb</step>
</case>
<case name="ft_43_participant_on_reply.rb">
<description></description>
<step expected_result="0">ruby functional/ft_43_participant_on_reply.rb</step>
</case>
<case name="ft_44_var_participant.rb">
<description></description>
<step expected_result="0">ruby functional/ft_44_var_participant.rb</step>
</case>
<case name="ft_45_participant_accept.rb">
<description></description>
<step expected_result="0">ruby functional/ft_45_participant_accept.rb</step>
</case>
<case name="ft_46_launch_single.rb">
<description></description>
<step expected_result="0">ruby functional/ft_46_launch_single.rb</step>
</case>
<case name="ft_47_wfid_generator.rb">
<description></description>
<step expected_result="0">ruby functional/ft_47_wfid_generator.rb</step>
</case>
<case name="ft_48_lose.rb">
<description></description>
<step expected_result="0">ruby functional/ft_48_lose.rb</step>
</case>
<case name="ft_4_cancel.rb">
<description></description>
<step expected_result="0">ruby functional/ft_4_cancel.rb</step>
</case>
<case name="ft_5_on_error.rb">
<description></description>
<step expected_result="0">ruby functional/ft_5_on_error.rb</step>
</case>
<case name="ft_6_on_cancel.rb">
<description></description>
<step expected_result="0">ruby functional/ft_6_on_cancel.rb</step>
</case>
<case name="ft_7_tags.rb">
<description></description>
<step expected_result="0">ruby functional/ft_7_tags.rb</step>
</case>
<case name="ft_8_participant_consumption.rb">
<description></description>
<step expected_result="0">ruby functional/ft_8_participant_consumption.rb</step>
</case>
<case name="ft_9_subprocesses.rb">
<description></description>
<step expected_result="0">ruby functional/ft_9_subprocesses.rb</step>
</case>
<case name="rt_0_wait.rb">
<description></description>
<step expected_result="0">ruby functional/rt_0_wait.rb</step>
</case>
<case name="rt_1_listen.rb">
<description></description>
<step expected_result="0">ruby functional/rt_1_listen.rb</step>
</case>
<case name="rt_2_errors.rb">
<description></description>
<step expected_result="0">ruby functional/rt_2_errors.rb</step>
</case>
<case name="rt_3_when.rb">
<description></description>
<step expected_result="0">ruby functional/rt_3_when.rb</step>
</case>
<case name="rt_4_cron.rb">
<description></description>
<step expected_result="0">ruby functional/rt_4_cron.rb</step>
</case>
<case name="rt_5_timeout.rb">
<description></description>
<step expected_result="0">ruby functional/rt_5_timeout.rb</step>
</case>
</set>
</suite>
The source of ruote unit test plan xml file:
<suite name="ruote-unit-suite">
<set name="ruote-unit-set">
<case name="storage.rb">
<description></description>
<step expected_result="0">ruby unit/storage.rb</step>
</case>
<case name="ut_0_ruby_parser.rb">
<description></description>
<step expected_result="0">ruby unit/ut_0_ruby_parser.rb</step>
</case>
<case name="ut_11_lookup.rb">
<description></description>
<step expected_result="0">ruby unit/ut_11_lookup.rb</step>
</case>
<case name="ut_13_serializer.rb">
<description></description>
<step expected_result="0">ruby unit/ut_13_serializer.rb</step>
</case>
<case name="ut_14_is_uri.rb">
<description></description>
<step expected_result="0">ruby unit/ut_14_is_uri.rb</step>
</case>
<case name="ut_15_util.rb">
<description></description>
<step expected_result="0">ruby unit/ut_15_util.rb</step>
</case>
<case name="ut_16_parser.rb">
<description></description>
<step expected_result="0">ruby unit/ut_16_parser.rb</step>
</case>
<case name="ut_18_engine.rb">
<description></description>
<step expected_result="0">ruby unit/ut_18_engine.rb</step>
</case>
<case name="ut_19_part_template.rb">
<description></description>
<step expected_result="0">ruby unit/ut_19_part_template.rb</step>
</case>
<case name="ut_1_fei.rb">
<description></description>
<step expected_result="0">ruby unit/ut_1_fei.rb</step>
</case>
<case name="ut_20_composite_storage.rb">
<description></description>
<step expected_result="0">ruby unit/ut_20_composite_storage.rb</step>
</case>
<case name="ut_3_wait_logger.rb">
<description></description>
<step expected_result="0">ruby unit/ut_3_wait_logger.rb</step>
</case>
<case name="ut_4_expmap.rb">
<description></description>
<step expected_result="0">ruby unit/ut_4_expmap.rb</step>
</case>
<case name="ut_5_tree.rb">
<description></description>
<step expected_result="0">ruby unit/ut_5_tree.rb</step>
</case>
<case name="ut_6_condition.rb">
<description></description>
<step expected_result="0">ruby unit/ut_6_condition.rb</step>
</case>
<case name="ut_7_workitem.rb">
<description></description>
<step expected_result="0">ruby unit/ut_7_workitem.rb</step>
</case>
<case name="ut_8_tree_to_dot.rb">
<description></description>
<step expected_result="0">ruby unit/ut_8_tree_to_dot.rb</step>
</case>
<case name="ut_9_xml_parser.rb">
<description></description>
<step expected_result="0">ruby unit/ut_9_xml_parser.rb</step>
</case>
</set>
</suite>
The source of ".../meego-qa-reports/db/seeds.rb"
User.create! :password => '88888888',
:email => 'boss@nokia.com',
:name => "Boss" unless User.exists? :email => 'boss@nokia.com'
testuser = User.find_by_email("boss@nokia.com")
file_path = File.join("ruote-2.1-func-test-result.xml")
if File::exists?( file_path )
session = MeegoTestSession.new(
"build_txt" => "",
"qa_summary_txt" => "",
"uploaded_files" => [file_path],
"testtype" => "ruote_2_1",
"hwproduct" => "functional",
"environment_txt" => "",
"issue_summary_txt" => "",
"target" => "Ruote",
"objective_txt" => "",
"release_version" => "ruote"
)
session.generate_defaults!
session.tested_at = Time.now
session.author = testuser
session.editor = testuser
session.published = true
session.save
end
file_path = File.join("ruote-2.1-unit-test-result.xml")
if File::exists?( file_path )
session = MeegoTestSession.new(
"build_txt" => "",
"qa_summary_txt" => "",
"uploaded_files" => [file_path],
"testtype" => "ruote_2_1",
"hwproduct" => "unit",
"environment_txt" => "",
"issue_summary_txt" => "",
"target" => "Ruote",
"objective_txt" => "",
"release_version" => "ruote"
)
session.generate_defaults!
session.tested_at = Time.now
session.author = testuser
session.editor = testuser
session.published = true
session.save
end