NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

nodditestrunner.py (2135B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\environment\nodditestrunner.py
      2 import uuid
      3 import blue
      4 from carbon.common.script.sys.service import Service
      5 from carbonui.uicore import uicore
      6 from nodegraph.common.nodedata import get_node_graph_ids_with_tags
      7 from nodditests.client.arguments import Arguments
      8 from nodditests.client.logger import logger
      9 from nodditests.client.reporting.teamcityreporter import TeamCityReporter
     10 from nodditests.client.runner import Runner
     11 
     12 class NoddiTestRunner(Service):
     13     __guid__ = 'svc.noddiTestRunner'
     14 
     15     def Run(self, *args, **kwargs):
     16         super(NoddiTestRunner, self).Run(*args, **kwargs)
     17         self.runner = None
     18         arguments = Arguments(blue.pyos.GetArg()[1:])
     19         if arguments.has_argument('/noddi_test'):
     20             if arguments.has_argument('/test_report_folder'):
     21                 report_folder = arguments.get_string_value('/test_report_folder')
     22             else:
     23                 report_folder = '.'
     24             reporter = TeamCityReporter(str(uuid.uuid4()), report_folder)
     25             self.runner = Runner(arguments, self.SelectCharacter, self.RunNodeGraph, reporter, self.GetTestNodeGraphByTag)
     26             sm.RegisterNotify(self.runner)
     27 
     28     @property
     29     def node_graph(self):
     30         return sm.GetService('node_graph')
     31 
     32     def SelectCharacter(self, characterID):
     33         cs = uicore.layer.charsel
     34         cs.TryEnterGame(int(characterID), secondChoiceID=None, skipTutorial=True)
     35 
     36     def GetTestNodeGraphByTag(self, node_graph_tag):
     37         required_tags = ['client', 'test-orchestrator', node_graph_tag]
     38         node_graph_ids = get_node_graph_ids_with_tags(required_tags)
     39         if not node_graph_ids:
     40             logger.warning('Failed to find any node graphs with tags %s', required_tags)
     41             return None
     42         if len(node_graph_ids) > 1:
     43             logger.warning('Found multiple node graphs with tags %s: %s', required_tags, node_graph_ids)
     44         return node_graph_ids[0]
     45 
     46     def RunNodeGraph(self, testCase):
     47         return self.node_graph.StartClientNodeGraph(testCase, blackboard_parameters=[])