• Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by unity_-IeKJfHxX6EkJA · Feb 21, 2020 at 04:08 PM · build settingstest

Change BuildSettings before run Unit test in Play Mode

I need to create different builds of the project I'm working on.

My builds differs one from the other from some scenes. So I need to change them for each build.

The point is that I woud like to test some workflows of my project with the different builds settings. I've tryed something like this:

 using NUnit.Framework;
 using UnityEditor;
 
 namespace Tests
 {
     public class TestRunner 
     {
         private string oldScenePath;
 
         [SetUp]
         public override void Setup()
         {
             EditorBuildSettingsScene[] newScenes = EditorBuildSettings.scenes;
             oldScenePath = newScenes[3].path;
             newScenes[3].path = "scene/to/change.unity";
             EditorBuildSettings.scenes = newScenes;
         }
 
         [TearDown]
         public override void Teardown()
         {
             EditorBuildSettingsScene[] newScenes = EditorBuildSettings.scenes;
             newScenes[3].path = oldScenePath;
             EditorBuildSettings.scenes = newScenes;
 
         }
 
         [UnityTest]
         public override string Test()
         {
             //Make things
         }
     }
 }


But this does not work, because SetUp is run during running mode, where I can not modify the EditorBuildSettings.

Any advice? Is it possible to make run a script before Unity enters in Play mode before running all the tests?

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by Warnecke · Feb 21, 2020 at 04:25 PM

It sounds like you could use an IPrebuildSetup and IPostBuildCleanup for this. https://docs.unity3d.com/Packages/com.unity.test-framework@1.1/manual/reference-setup-and-cleanup.html

You should be able to modify the EditorBuildSettings inside those Setup and Cleanup methods. Note that UnityEditor is not available when building for a player, so you will need to surround the EditorBuildSettings with #if UNITY_EDITOR, like in the example in the link.

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Welcome to Unity Answers

The best place to ask and answer questions about development with Unity.

To help users navigate the site we have posted a site navigation guide.

If you are a new user to Unity Answers, check out our FAQ for more information.

Make sure to check out our Knowledge Base for commonly asked Unity questions.

If you are a moderator, see our Moderator Guidelines page.

We are making improvements to UA, see the list of changes.



Follow this Question

Answers Answers and Comments

122 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Iphone app played in Unity without loading to iphone? 1 Answer

unity 4 and ios confusion. Help!!! 0 Answers

Workaround for UnityVS 1.9.9.0 Overwriting Project References on Every Compile 1 Answer

How to implement mandatory cleanup for the Unity PlayMode tests? 1 Answer

Game won't run in Windows XP?!?!?! 1 Answer

  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges