public void TestValidate()
        {
            var finder = new ValidationTargetFinder();
            var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/AnimatorComponentMaxCountRule", true);
            var rule   = new AnimatorComponentMaxCountRule("AnimatorComponent使用数検出", ANIMATOR_LIMIT_COUNT);
            var result = rule.Validate(target);
            var issues = result.Issues;

            Assert.That(result.RuleName, Is.EqualTo("AnimatorComponent使用数検出"));
            Assert.That(issues.Count, Is.EqualTo(ANIMATOR_LIMIT_COUNT + 1));
            for (int i = 0; i < issues.Count; i++)
            {
                Assert.That(issues[i].level, Is.EqualTo(IssueLevel.Error));
                if (i == 0)
                {
                    Assert.That(result.Issues[i].target.name, Is.EqualTo(string.Format("AnimatorObject")));
                }
                else
                {
                    Assert.That(issues[i].target.name, Is.EqualTo(string.Format("AnimatorObject ({0})", i)));
                }
                //Assert.That(issues[i].message, Is.EqualTo(string.Format("Animatorコンポーネントの使用数が{0}個を超えています。({1}個)", ANIMATOR_LIMIT_COUNT, 51)));
                //Assert.That(issues[i].solution, Is.EqualTo("Animatorコンポーネントの使用数を減らしてください。"));
                Assert.That(issues[i].solutionURL, Is.Empty);
            }
        }
        public void TestBySampleData()
        {
            var testData = "Assets/VitDeck/Validator/Tests/Data/MissingReferenceRule";
            var rule     = new MissingReferenceRule("missing検出ルール");
            var target   = new ValidationTargetFinder().Find(testData, true);

            var result = rule.Validate(target);

            Assert.That(result.Issues.Count, Is.EqualTo(5));

            Assert.NotNull(result.Issues.Find(issue =>
                                              issue.message == "missingプレハブが含まれています!(Missing Prefab)" &&
                                              issue.target == GameObject.Find("Missing Prefab")));

            Assert.NotNull(result.Issues.Find(issue =>
                                              issue.message == "missingコンポーネントが含まれています!(MissingScriptObject)" &&
                                              issue.target == GameObject.Find("MissingScriptObject")));

            Assert.NotNull(result.Issues.Find(issue =>
                                              issue.message == "missingフィールドが含まれています!(MissingTestMaterial > _MainTex)" &&
                                              issue.target == AssetDatabase.LoadMainAssetAtPath(testData + "/MissingTestMaterial.mat")));

            Assert.NotNull(result.Issues.Find(issue =>
                                              issue.message == "missingフィールドが含まれています!(RecursiveMissingTestPrefabChild > EventTrigger > Target)" &&
                                              issue.target == AssetDatabase.LoadMainAssetAtPath(testData + "/RecursiveMissingTestPrefabChild.prefab")));

            Assert.NotNull(result.Issues.Find(issue =>
                                              issue.message == "missingコンポーネントが含まれています!(RecursiveMissingTestPrefabChild)" &&
                                              issue.target == AssetDatabase.LoadMainAssetAtPath(testData + "/RecursiveMissingTestPrefabChild.prefab")));
        }
        public void TestValidate()
        {
            var grupeName = "カメラ";
            var rule      = new ComponentBlacklistRule("コンポーネントブラックリストルール",
                                                       new ComponentReference[] { new ComponentReference("ライティング", new string[] { "UnityEngine.Light" }, ValidationLevel.ALLOW),
                                                                                  new ComponentReference(grupeName, new string[] { "UnityEngine.Camera" }, ValidationLevel.NEGOTIABLE),
                                                                                  new ComponentReference("Jointの使用禁止", new string[] { "UnityEngine.CharacterJoint",
                                                                                                                                      "UnityEngine.ConfigurableJoint",
                                                                                                                                      "UnityEngine.FixedJoint",
                                                                                                                                      "UnityEngine.HingeJoint",
                                                                                                                                      "UnityEngine.SpringJoint" }, ValidationLevel.DISALLOW) });
            var finder = new ValidationTargetFinder();
            var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/B03_ComponentBlacklistRule", true);
            var result = rule.Validate(target);

            Assert.That(result.RuleName, Is.EqualTo("コンポーネントブラックリストルール"));
            Assert.That(result.Issues.Count, Is.EqualTo(2));
            Assert.That(result.Issues[0].level, Is.EqualTo(IssueLevel.Warning));
            Assert.That(result.Issues[0].target.name, Is.EqualTo("Main Camera"));
            Assert.That(result.Issues[0].message, Is.EqualTo(string.Format("{0}:Cameraを使用する場合は事前に運営に問い合わせてください。", grupeName)));
            Assert.That(result.Issues[0].solution, Is.Empty);
            Assert.That(result.Issues[0].solutionURL, Is.Empty);
            Assert.That(result.Issues[1].level, Is.EqualTo(IssueLevel.Error));
            Assert.That(result.Issues[1].target.name, Is.EqualTo("GameObjectWithJoint"));
        }
Exemple #4
0
        public void TestValidateErrorDetail(
            LightType type,
            LightmapBakeType[] bakeTypes,
            float minRange, float maxRange,
            float minIntensity, float maxIntensity,
            float minBounceIntensity, float maxBounceIntensity)
        {
            var rule = new LightConfigRule(string.Format("{0}Lightの設定が制限に従っていることを検証するルール", type),
                                           type, bakeTypes, minRange, maxRange, minIntensity, maxIntensity, minBounceIntensity, maxBounceIntensity);
            var finder = new ValidationTargetFinder();
            var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/LightConfigRule", true);
            var result = rule.Validate(target);

            Assert.That(result.RuleName, Is.EqualTo(string.Format("{0}Lightの設定が制限に従っていることを検証するルール", type)));
            Debug.Log(string.Format("{0}Lightの設定が制限に従っていることを検証するルール", type));
            Assert.That(result.Issues.Count, Is.EqualTo(4));

            var obj = result.Issues[0].target as GameObject;

            Assert.That(obj.name, Does.EndWith("_NG"));
            var light = obj.GetComponent <Light>();
            var bakeTypeListString = string.Join(", ", bakeTypes.Select(x => x.ToString()).ToArray());

            Assert.That(result.Issues[0].level, Is.EqualTo(IssueLevel.Error));
            //Assert.That(result.Issues[0].message, Is.EqualTo(string.Format("{0}LightのModeが{1}以外に設定されています。({2})",
            //                                                    type, bakeTypeListString, light.lightmapBakeType)));
            //Assert.That(result.Issues[0].solution, Is.EqualTo(string.Format("Modeを{0}に設定して下さい。", bakeTypeListString)));
            Debug.Log(result.Issues[0].message);
            Debug.Log(result.Issues[0].solution);

            obj = result.Issues[1].target as GameObject;
            Assert.That(obj.name, Does.EndWith("_NG"));
            light = obj.GetComponent <Light>();
            Assert.That(result.Issues[1].level, Is.EqualTo(IssueLevel.Error));
            //Assert.That(result.Issues[1].message, Is.EqualTo(string.Format("{0}LightのRangeが{1}~{2}の範囲を超えています。(設定値:{3})",
            //                                                    type, minRange, maxRange, light.range)));
            //Assert.That(result.Issues[1].solution, Is.EqualTo("Rangeを範囲内になるように設定して下さい。"));
            Debug.Log(result.Issues[1].message);
            Debug.Log(result.Issues[1].solution);

            obj = result.Issues[2].target as GameObject;
            Assert.That(obj.name, Does.EndWith("_NG"));
            light = obj.GetComponent <Light>();
            Assert.That(result.Issues[2].level, Is.EqualTo(IssueLevel.Error));
            //Assert.That(result.Issues[2].message, Is.EqualTo(string.Format("{0}LightのIntensityが{1}~{2}の範囲を超えています。(設定値:{3})",
            //                                                    type, minIntensity, maxIntensity, light.intensity)));
            //Assert.That(result.Issues[2].solution, Is.EqualTo("Intensityを範囲内になるように設定して下さい。"));
            Debug.Log(result.Issues[2].message);
            Debug.Log(result.Issues[2].solution);

            obj = result.Issues[3].target as GameObject;
            Assert.That(obj.name, Does.EndWith("_NG"));
            light = obj.GetComponent <Light>();
            Assert.That(result.Issues[3].level, Is.EqualTo(IssueLevel.Error));
            //Assert.That(result.Issues[3].message, Is.EqualTo(string.Format("{0}LightのIndirect Multiplierが{1}~{2}の範囲を超えています。(設定値:{3})",
            //                                                    type, minBounceIntensity, maxBounceIntensity, light.bounceIntensity)));
            //Assert.That(result.Issues[3].solution, Is.EqualTo("Indirect Multiplierを範囲内になるように設定して下さい。"));
            Debug.Log(result.Issues[3].message);
            Debug.Log(result.Issues[3].solution);
        }
Exemple #5
0
        public void TestValidate()
        {
            var finder = new ValidationTargetFinder();
            var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/B04_ErrorShaderRule", true);
            var rule   = new ErrorShaderRule("エラーシェーダー検出");
            var result = rule.Validate(target);

            Assert.That(result.RuleName, Is.EqualTo("エラーシェーダー検出"));
            Assert.That(result.Issues.Count, Is.EqualTo(3));
            Assert.That(result.Issues[0].level, Is.EqualTo(IssueLevel.Error));
            Assert.That(result.Issues[0].target.name, Is.EqualTo("HiddenInternalErrorShaderObject"));
            Assert.That(result.Issues[0].message, Is.EqualTo(string.Format("オブジェクトのマテリアルで正しいシェーダーが参照されていません。", "HiddenInternalErrorShaderObject")));
            Assert.That(result.Issues[0].solution, Is.Empty);
            Assert.That(result.Issues[0].solutionURL, Is.Empty);
            Assert.That(result.Issues[1].level, Is.EqualTo(IssueLevel.Error));
            Assert.That(result.Issues[1].target.name, Is.EqualTo("ErrorShaderObject"));
            Assert.That(result.Issues[1].message, Is.EqualTo(string.Format("オブジェクトでシェーダーエラーが検出されました。", "ErrorShaderObject")));
            Assert.That(result.Issues[1].solution, Is.Empty);
            Assert.That(result.Issues[1].solutionURL, Is.Empty);
            Assert.That(result.Issues[2].level, Is.EqualTo(IssueLevel.Info));
            Assert.That(result.Issues[2].target.name, Is.EqualTo("NoneMaterialObject"));
            Assert.That(result.Issues[2].message, Is.EqualTo(string.Format("オブジェクトのRendererにマテリアルの参照がありません。", "NoneMaterialObject")));
            Assert.That(result.Issues[2].solution, Is.Empty);
            Assert.That(result.Issues[2].solutionURL, Is.Empty);
        }
Exemple #6
0
        public void DisableAlwaysAnimateTest()
        {
            var target = new ValidationTargetFinder().Find("Assets/VitDeck/Validator/Tests/Data/AnimationComponentRule/DisableAlwaysAnimate", true);
            var issues = new AnimationComponentRule("").Validate(target).Issues;

            Assert.That(issues.Count, Is.EqualTo(0));
        }
Exemple #7
0
        public void EnableAlwaysAnimateTest()
        {
            var target = new ValidationTargetFinder().Find("Assets/VitDeck/Validator/Tests/Data/AnimationComponentRule/EnableAlwaysAnimate", true);
            var issues = new AnimationComponentRule("").Validate(target).Issues;

            Assert.That(issues.Count, Is.EqualTo(1));
            Assert.That(issues[0].level, Is.EqualTo(IssueLevel.Warning));
        }
Exemple #8
0
        public void SetAlwaysMotionTest()
        {
            var target = new ValidationTargetFinder().Find(BaseFolder + "SetAlwaysAnimate", true);
            var issues = new AnimatorComponentRule("", new System.Type[] { }).Validate(target).Issues;

            Assert.That(issues.Count, Is.EqualTo(1));
            Assert.That(issues[0].level, Is.EqualTo(IssueLevel.Warning));
        }
        public void TestFindInvalid()
        {
            var testFolder = "Invalid";
            var finder     = new ValidationTargetFinder();

            Assert.That(() => finder.Find(testFolder),
                        Throws.Exception.TypeOf <FatalValidationErrorException>()
                        .And.Message.EqualTo("正しいベースフォルダを指定してください。:Invalid"));
        }
Exemple #10
0
        public void WithAnyComponentTest()
        {
            // ここでは例としてBoxColliderをmustUseSeparatelyComponentsに設定
            var target = new ValidationTargetFinder().Find(BaseFolder + "WithBoxColliderComponent", true);
            var issues = new AnimatorComponentRule("", new System.Type[] { typeof(BoxCollider) }).Validate(target).Issues;

            Assert.That(issues.Count, Is.EqualTo(1));
            Assert.That(issues[0].level, Is.EqualTo(IssueLevel.Error));
        }
        public void TestFindScenes()
        {
            var testFolder = "Assets/VitDeck/Validator/Tests/ValidationTargetFinder";
            var finder     = new ValidationTargetFinder();
            var scenes     = finder.FindScenes(testFolder, true);

            //New Scene
            Assert.That(scenes.Length, Is.EqualTo(1));
            Assert.That(Array.Exists(scenes, scene => scene.path == "Assets/VitDeck/Validator/Tests/ValidationTargetFinder/New Scene.unity"), Is.True);
        }
Exemple #12
0
        public void TestValidateNoObject()
        {
            var rule = new AssetGuidBlacklistRule("AssetGuidBlacklistRule",
                                                  new string[] { "740112f6e77ca914d9c26eef5d68accd", "ae68339621fb41b4f9905188526120ea" });
            var finder = new ValidationTargetFinder();
            var target = finder.Find("Assets/VitDeck/Validator/Tests/ValidationTargetFinderNoObject", true);
            var result = rule.Validate(target);

            Assert.That(result.Issues.Count, Is.EqualTo(0));
        }
Exemple #13
0
        public void TestValidate(LightType type, LightmapBakeType[] unusableBakeTypes)
        {
            var rule   = new UseLightModeRule("特定のLightのModeについて検証するルール", type, unusableBakeTypes);
            var finder = new ValidationTargetFinder();
            var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/UseLightModeRule", true);
            var result = rule.Validate(target);

            Assert.That(result.RuleName, Is.EqualTo("特定のLightのModeについて検証するルール"));
            Assert.That(result.Issues.Count, Is.Zero);
        }
Exemple #14
0
        public void TestNoIssues()
        {
            var rule   = new NoneMeshRule("メッシュ未設定検出ルール");
            var finder = new ValidationTargetFinder();
            var target = finder.Find("Assets/VitDeck/Validator/Tests/ValidationTargetFinderNoObject", true);

            var result = rule.Validate(target);
            var issues = result.Issues;

            Assert.That(issues.Count, Is.EqualTo(0));
        }
        public void TestFindNoObject()
        {
            var testFolder  = "Assets/VitDeck/Validator/Tests/ValidationTargetFinderNoObject";
            var finder      = new ValidationTargetFinder();
            var rootObjects = finder.FindRootObjects(testFolder, true);

            Assert.That(rootObjects.Length, Is.EqualTo(0));
            var allObjects = finder.FindAllObjects(testFolder, true);

            Assert.That(allObjects.Length, Is.EqualTo(0));
        }
Exemple #16
0
        public void TestValidate()
        {
            var rule   = new ContainMatOrTexInAssetRule("アセット内のMaterialやTextureの埋め込みを検証するルール");
            var finder = new ValidationTargetFinder();
            var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/ContainMatOrTexInAssetRule/OK", true);
            var result = rule.Validate(target);

            Assert.That(result.RuleName, Is.EqualTo("アセット内のMaterialやTextureの埋め込みを検証するルール"));

            Assert.That(result.Issues.Count, Is.Zero);
        }
Exemple #17
0
        public void TestValidate(LightType type, LightmapBakeType[] bakeTypes)
        {
            var rule   = new LightConfigRule(string.Format("{0}Lightの設定が制限に従っていることを検証するルール", type), type, bakeTypes);
            var finder = new ValidationTargetFinder();
            var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/LightConfigRule", true);
            var result = rule.Validate(target);

            Assert.That(result.RuleName, Is.EqualTo(string.Format("{0}Lightの設定が制限に従っていることを検証するルール", type)));
            Debug.Log(string.Format("{0}Lightの設定が制限に従っていることを検証するルール", type));
            Assert.That(result.Issues.Count, Is.EqualTo(0));
        }
        public void TestUnderLimit()
        {
            var limit  = 4;
            var guids  = new string[] { "c4bb7970c870834499aba4a950dd3d73" };
            var rule   = new PrefabLimitRule("", guids, limit);
            var finder = new ValidationTargetFinder();
            var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/PrefabLimitRule", true);
            var result = rule.Validate(target);

            Assert.That(result.Issues.Count, Is.Zero);
        }
        public void TestFindRootObjects()
        {
            var testFolder  = "Assets/VitDeck/Validator/Tests/ValidationTargetFinder";
            var finder      = new ValidationTargetFinder();
            var rootObjects = finder.FindRootObjects(testFolder, true);

            //New Scene
            Assert.That(rootObjects.Length, Is.EqualTo(3));
            Assert.That(Array.Exists(rootObjects, obj => obj.name == "Cube(main)"), Is.True);
            Assert.That(Array.Exists(rootObjects, obj => obj.name == "Directional Light"), Is.True);
            Assert.That(Array.Exists(rootObjects, obj => obj.name == "Main Camera"), Is.True);
        }
        public void TestInvalidPath()
        {
            var finder = new ValidationTargetFinder();
            var path   = "invalidPath";

            Assert.That(finder.FindAssetPaths(path), Is.Null);
            Assert.That(finder.FindAssetGuids(path), Is.Null);
            Assert.That(finder.FindAssetObjects(path), Is.Null);
            Assert.That(finder.FindScenes(path), Is.Null);
            Assert.That(finder.FindRootObjects(path), Is.Null);
            Assert.That(finder.FindAllObjects(path), Is.Null);
        }
Exemple #21
0
        public void TestValidate()
        {
            var limit = 5;

            var rule   = new VRCTriggerCountLimitRule("VRC_Triggerコンポーネントの数が制限を超えていることを検出するルール", limit);
            var finder = new ValidationTargetFinder();
            var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/VRCTriggerCountLimitRule", true);
            var result = rule.Validate(target);

            Assert.That(result.RuleName, Is.EqualTo("VRC_Triggerコンポーネントの数が制限を超えていることを検出するルール"));
            Assert.That(result.Issues.Count, Is.EqualTo(0));
        }
        public void TestValidateInvalidSetting()
        {
            var invalidRule  = new ComponentBlacklistRule(null, new ComponentReference[] { null });
            var invalidRule2 = new ComponentBlacklistRule("コンポーネントブラックリストルール", null);
            var finder       = new ValidationTargetFinder();
            var target       = finder.Find("Assets/VitDeck/Validator/Tests/Data/ComponentBlacklistRule", true);
            var result       = invalidRule.Validate(target);

            Assert.That(result.Issues.Count, Is.EqualTo(0));
            var failResult = invalidRule2.Validate(target);

            Assert.That(failResult.Issues.Count, Is.EqualTo(0));
        }
        public void TestValidateInvalidSetting()
        {
            var invalidRule  = new UsableComponentListRule(null, new ComponentReference[] { null });
            var invalidRule2 = new UsableComponentListRule("", null);
            var finder       = new ValidationTargetFinder();
            var target       = finder.Find("Assets/VitDeck/Validator/Tests/Data/UsableComponentListRule", true);
            var result       = invalidRule.Validate(target);

            Assert.That(result.Issues.Count, Is.Zero);
            var failResult = invalidRule2.Validate(target);

            Assert.That(failResult.Issues.Count, Is.Zero);
        }
        public void TestFindObjects()
        {
            var testFolder = "Assets/VitDeck/Validator/Tests/ValidationTargetFinder";
            var finder     = new ValidationTargetFinder();
            var allObjects = finder.FindAllObjects(testFolder, true);

            //New Scene
            Assert.That(allObjects.Length, Is.AtLeast(4));
            Assert.That(Array.Exists(allObjects, obj => obj.name == "Cube(main)"), Is.True);
            Assert.That(Array.Exists(allObjects, obj => obj.name == "Cube(child)"), Is.True);
            Assert.That(Array.Exists(allObjects, obj => obj.name == "Capsule"), Is.True);
            Assert.That(Array.Exists(allObjects, obj => obj.name == "Audio Source"), Is.True);
        }
        public void TestValidate(LightType type, int limit)
        {
            var rule = new LightCountLimitRule(
                string.Format("{0}Lightの個数が制限を超えていることを検出するルール", type),
                type,
                limit);

            var finder = new ValidationTargetFinder();
            var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/LightCountLimitRule", true);
            var result = rule.Validate(target);

            Assert.That(result.RuleName, Is.EqualTo(string.Format("{0}Lightの個数が制限を超えていることを検出するルール", type)));
            Assert.That(result.Issues.Count, Is.EqualTo(0));
        }
        public void TestFindAssetPaths()
        {
            var testFolder = "Assets/VitDeck/Validator/Tests/ValidationTargetFinder";
            var finder     = new ValidationTargetFinder();
            var assetPaths = finder.FindAssetPaths(testFolder);

            Assert.That(Array.Exists(assetPaths, path => path == testFolder), Is.True);
            Assert.That(Array.Exists(assetPaths, path => path == (testFolder + "/Sample_object.fbx")), Is.True);
            Assert.That(Array.Exists(assetPaths, path => path == (testFolder + "/New Scene.unity")), Is.True);
            Assert.That(Array.Exists(assetPaths, path => path == (testFolder + "/Sub Folder")), Is.True);
            Assert.That(Array.Exists(assetPaths, path => path == (testFolder + "/Sub Folder/New Prefab in sub folder.prefab")), Is.True);
            //FBXのサブアセットによりパスが重複取得されない
            Assert.That(assetPaths.Length, Is.EqualTo(assetPaths.Distinct().Count()));
        }
Exemple #27
0
        public void TestValidate()
        {
            var rule   = new UseMeshColliderRule("MeshColliderの使用を検証するルール");
            var finder = new ValidationTargetFinder();
            var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/UseMeshColliderRule", true);
            var result = rule.Validate(target);

            Assert.That(result.RuleName, Is.EqualTo("MeshColliderの使用を検証するルール"));
            Assert.That(result.Issues.Count, Is.AtLeast(1));
            Assert.That(result.Issues[0].level, Is.EqualTo(IssueLevel.Warning));
            //Assert.That(result.Issues[0].message, Is.EqualTo("MeshColliderは非推奨です。"));
            //Assert.That(result.Issues[0].solution, Is.EqualTo("他のColliderを使用してください。"));
            Assert.That(result.Issues[0].solutionURL, Is.Empty);
        }
        public void TestFind()
        {
            var testFolder       = "Assets/VitDeck/Validator/Tests/ValidationTargetFinder";
            var finder           = new ValidationTargetFinder();
            var validationTarget = finder.Find(testFolder, true);

            Assert.That(validationTarget.GetBaseFolderPath(), Is.EqualTo(testFolder));
            Assert.That(validationTarget.GetAllAssetPaths(), Is.Not.Null);
            Assert.That(validationTarget.GetAllAssetGuids(), Is.Not.Null);
            Assert.That(validationTarget.GetAllAssets(), Is.Not.Null);
            Assert.That(validationTarget.GetScenes(), Is.Not.Null);
            Assert.That(validationTarget.GetRootObjects(), Is.Not.Null);
            Assert.That(validationTarget.GetAllObjects(), Is.Not.Null);
        }
Exemple #29
0
        public void TestBySampleData()
        {
            var testData = "Assets/VitDeck/Validator/Tests/Data/NoneMeshRule";
            var rule     = new NoneMeshRule("メッシュ未設定検出ルール");
            var target   = new ValidationTargetFinder().Find(testData, true);

            var result = rule.Validate(target);
            var issues = result.Issues;

            Assert.That(issues.Count, Is.EqualTo(4));
            Assert.NotNull(issues.Find(issue => issue.message == "NoneMeshFilterObject (UnityEngine.MeshFilter)にメッシュが設定されていません。"));
            Assert.NotNull(issues.Find(issue => issue.message == "NoneMeshColliderObject (UnityEngine.MeshCollider)にメッシュが設定されていません。"));
            Assert.NotNull(issues.Find(issue => issue.message == "NoneSkinnedMeshRendererObject (UnityEngine.SkinnedMeshRenderer)にメッシュが設定されていません。"));
            Assert.NotNull(issues.Find(issue => issue.message == "NoneMeshShapeParticleSystem (UnityEngine.ParticleSystem)/Shapeがメッシュに依存する設定であるにも関わらず、メッシュが設定されていません。"));
        }
Exemple #30
0
        public void TestValidate()
        {
            var finder = new ValidationTargetFinder();
            var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/GlobalIlluminationBakedRule", true);
            var rule   = new GlobalIlluminationBakedRule("Global IlluminationのBakedチェックルール");
            var result = rule.Validate(target);

            Assert.That(result.RuleName, Is.EqualTo("Global IlluminationのBakedチェックルール"));
            Assert.That(result.Issues.Count, Is.EqualTo(1));
            Assert.That(result.Issues[0].level, Is.EqualTo(IssueLevel.Error));
            Assert.That(result.Issues[0].target.name, Is.EqualTo("Cube_GINotBaked"));
            //Assert.That(result.Issues[0].message, Is.EqualTo(string.Format("アセット{0}でGlobal IlluminationがBakedに設定されていません。", "Cube_GINotBaked (UnityEngine.GameObject)")));
            //Assert.That(result.Issues[0].solution, Is.EqualTo("Standard ShaderでEmissionを利用する場合はGlobal Illuminationの設定をBakedにしてください。"));
            Assert.That(result.Issues[0].solutionURL, Is.Empty);
        }