ScriptableBuildPipeline.Settings LoadSettingsFromFile()
        {
            var settings = new ScriptableBuildPipeline.Settings();

            if (File.Exists(ScriptableBuildPipeline.kSettingPath))
            {
                var json = File.ReadAllText(ScriptableBuildPipeline.kSettingPath);
                EditorJsonUtility.FromJsonOverwrite(json, settings);
            }
            return(settings);
        }
 void AssertSettingsChanged(ScriptableBuildPipeline.Settings preSettings, ScriptableBuildPipeline.Settings postSettings, FieldInfo[] fields, int fieldChanged)
 {
     for (int i = 0; i < fields.Length; i++)
     {
         if (i == fieldChanged)
         {
             Assert.AreNotEqual(fields[i].GetValue(preSettings), fields[i].GetValue(postSettings), $"Unexpected field '{fields[i].Name}' value is unchanged.");
         }
         else
         {
             Assert.AreEqual(fields[i].GetValue(preSettings), fields[i].GetValue(postSettings), $"Unexpected field '{fields[i].Name}' value is changed.");
         }
     }
 }
        public void Setup()
        {
            EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo();
            Directory.CreateDirectory(k_TestAssetsPath);
#if UNITY_2018_3_OR_NEWER
            PrefabUtility.SaveAsPrefabAsset(GameObject.CreatePrimitive(PrimitiveType.Cube), k_CubePath);
            PrefabUtility.SaveAsPrefabAsset(GameObject.CreatePrimitive(PrimitiveType.Cube), k_CubePath2);
#else
            PrefabUtility.CreatePrefab(k_CubePath, GameObject.CreatePrimitive(PrimitiveType.Cube));
            PrefabUtility.CreatePrefab(k_CubePath2, GameObject.CreatePrimitive(PrimitiveType.Cube));
#endif
            AssetDatabase.ImportAsset(k_CubePath);
            AssetDatabase.ImportAsset(k_CubePath2);

            m_Settings = LoadSettingsFromFile();
        }