public BaseInstanceValidatorManager(ClassTypeCache cache, AssetValidatorLogger logger)
            : base(logger)
        {
            _cache = cache;
            _instanceValidatorCache = new InstanceValidatorCache();

            InitValidatorLookup();
        }
Beispiel #2
0
        public void Setup()
        {
            _coreCache = new ClassTypeCache();
            _coreCache.AddTypeWithAttribute <Monobehavior2, ValidateAttribute>();
            _logger = new AssetValidatorLogger();

            _sValidatorManager = new ActiveSceneValidatorManager(_coreCache, _logger);
        }
Beispiel #3
0
        public CrossSceneValidatorManager(AssetValidatorLogger logger)
            : base(logger)
        {
            _crossSceneValidatorCache = new CrossSceneValidatorCache();

            for (var i = 0; i < _crossSceneValidatorCache.Count; i++)
            {
                _crossSceneValidatorCache[i].OnLogEvent += _logger.OnLogEvent;
            }
        }
        public void AddDisabledLogs(AssetValidatorLogger logger)
        {
            for (var i = 0; i < OverrideItems.Count; i++)
            {
                if (OverrideItems[i].enabled)
                {
                    continue;
                }

                logger.OnLogEvent(new VLog()
                {
                    source   = VLogSource.None,
                    vLogType = VLogType.Warning,
                    message  = string.Format("Validator of type [{0}] is disabled in the AssetValidatorOverrideConfig at [{1}]",
                                             OverrideItems[i].type.Name, AssetDatabase.GetAssetPath(this))
                });
            }
        }
Beispiel #5
0
        private void OnEnable()
        {
            titleContent.text = "Asset Validator";

            _customGUISkin = GetGUISkin();
            _toolbarStyle  = _customGUISkin.button;

            _logger = new AssetValidatorLogger();

            _groupByOptionsValues = (VLogTreeGroupByMode[])Enum.GetValues(typeof(VLogTreeGroupByMode));
            _groupByOptionsNames  = _groupByOptionsValues.Select(x => ReflectionUtility.ToEnumString(x)).ToArray();

            _ouputFormatOptions      = (OutputFormat[])Enum.GetValues(typeof(OutputFormat));
            _outputFormatOptionNames = _ouputFormatOptions.Select(x => ReflectionUtility.ToEnumString(x)).ToArray();

            _sceneValidationModeOptions     = (SceneValidationMode[])Enum.GetValues(typeof(SceneValidationMode));
            _sceneValidationModeOptionNames = _sceneValidationModeOptions.Select(x => ReflectionUtility.ToEnumString(x)).ToArray();

            InitOnEnable();
        }
        public AssetValidatorRunner(AssetValidatorLogger logger, SceneValidationMode vmode)
        {
            _scenePaths = AssetValidatorUtility.GetScenePaths(vmode);

            _logger = logger;

            _cache = new ClassTypeCache();

            // Ensure any unit test types do not get picked up for validation.
            _cache.IgnoreType <Monobehavior2>();
            _cache.IgnoreAttribute <OnlyIncludeInTestsAttribute>();

            // Find all objects for validation
            _cache.AddTypeWithAttribute <MonoBehaviour, ValidateAttribute>();

            // Add all disabled logs for this run
            AssetValidatorOverrideConfig.FindOrCreate().AddDisabledLogs(logger);

            _isRunning   = true;
            _runningTime = EditorApplication.timeSinceStartup;
        }
Beispiel #7
0
        public static Result RunValidation(SceneValidationMode vMode,
                                           OutputFormat oFormat,
                                           bool doValidateProjectAssets = false,
                                           bool doValidateAcrossScenes  = false,
                                           string fileName = "asset_validator_results")
        {
            AssetValidatorUtility.EditorOuputFormat = oFormat;
            AssetValidatorUtility.EditorFilename    = fileName;

            try
            {
                var assetLogger = new AssetValidatorLogger();
                using (var assetValidationRunner = new AssetValidatorRunner(assetLogger, vMode))
                {
                    if (doValidateProjectAssets)
                    {
                        assetValidationRunner.EnableProjectAssetValidation();
                    }

                    if (doValidateAcrossScenes)
                    {
                        assetValidationRunner.EnableCrossSceneValidation();
                    }

                    assetValidationRunner.Run();
                }

                var logs = assetLogger.GetLogs();
                if (AssetValidatorUtility.EditorOuputFormat != OutputFormat.None)
                {
                    using (var writer = new AssetValidatorLogWriter(AssetValidatorUtility.EditorFilename,
                                                                    AssetValidatorUtility.EditorOuputFormat))
                    {
                        if (AssetValidatorUtility.EditorOuputFormat == OutputFormat.Html)
                        {
                            writer.CreateHtmlStyles(logs);
                        }

                        writer.AppendHeader();
                        for (var i = 0; i < logs.Count; i++)
                        {
                            writer.AppendVLog(logs[i]);
                        }

                        writer.AppendFooter();
                        writer.Flush();
                    }
                }

                var result = new Result {
                    isSuccessful = logs.Any(x => x.vLogType == VLogType.Error)
                };
                result.message = result.isSuccessful
                    ? "No AssetValidation errors were found."
                    : "Several AssetValidation errors were found";

                return(result);
            }
            catch (Exception ex)
            {
                return(new Result()
                {
                    isSuccessful = false,
                    message = string.Format("AssetValidation failed to be run with the following exception: [{0}]", ex)
                });
            }
        }
 public ProjectAssetValidatorManager(ClassTypeCache cache, AssetValidatorLogger logger)
     : base(cache, logger)
 {
     _continueSearchProgress = 0;
     _allPrefabGUIDs         = AssetDatabase.FindAssets("t:Prefab");
 }
 public ActiveSceneValidatorManager(ClassTypeCache cache, AssetValidatorLogger logger)
     : base(cache, logger)
 {
 }
Beispiel #10
0
 protected BaseValidatorManager(AssetValidatorLogger logger)
 {
     _logger = logger;
 }