{"_id":"com.unity.test-framework","name":"com.unity.test-framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","provider":"upm","versions":{"1.4.6":{"_upm":{"changelog":"- Fixed an issue where the architecture flag would not be parsed for the StandaloneOSX platform.\n- Fixed an issue where the test results ui and progress bar would not update before a user input, such as mouse movement, was detected (UTF-609).\n- Fixed an issue where root of the test tree was marked as NotRun, when all the tests were run and at least one test is ignore.\n- Ensure that an error is raised and the test run is stopped if a playmode test method exits playmode (DSTR-1091). \n- Async editmode tests are no longer throw error when yielding a different value than null (DSTR-1066)\n- Fixed an issue where the \"C# Test Script\" button was always disabled in One Column view in Project tab. (DSTR-1083)\n- Async and UnityTest can now use ParametrizedIgnore attribute. (DSTR-1068)\n- Corrected Timeout to only apply to the test method and not the teardown methods, ensuring that TearDown is always run if a test case times out (DSTR-1077).\n- Added a queue size indicator in the player side test result ui. This can be used to track the progress of sending back result data to the editor.\n- Parent node of the test tree is now updated after all children finish running and have a result."},"unity":"2019.4","samples":[{"path":"Samples~/1_RunningTest_Project","description":"This exercise will teach you how to set up a simple Unity project with a test assembly and tests.","displayName":"Exercise 1: Running Tests"},{"path":"Samples~/1_RunningTest_Project_Solution","description":"This exercise will teach you how to set up a simple Unity project with a test assembly and tests.","displayName":"Exercise 1: Solution"},{"path":"Samples~/2_ActArrangeAssert","description":"In this exercise, you will learn about the core unit testing principle of AAA (Arrange, Act, Assert), which will help you structure your unit test.","displayName":"Exercise 2: Arrange, Act, Assert"},{"path":"Samples~/2_ActArrangeAssert_Solution","description":"In this exercise, you will learn about the core unit testing principle of AAA (Arrange, Act, Assert), which will help you structure your unit test.","displayName":"Exercise 2: Solution"},{"path":"Samples~/3_SemanticTestAssertion","description":"You will be introduced to the Assert.That and related classes.","displayName":"Exercise 3: Semantic Test Assertion"},{"path":"Samples~/3_SemanticTestAssertion_Solution","description":"You will be introduced to the Assert.That and related classes.","displayName":"Exercise 3: Solution"},{"path":"Samples~/4_CustomComparison","description":"This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.","displayName":"Exercise 4: Custom Comparison"},{"path":"Samples~/4_CustomComparison_Solution","description":"This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.","displayName":"Exercise 4: Solution"},{"path":"Samples~/5_AssertingLogs","description":"How to test and verify code that logs to the console log.","displayName":"Exercise 5: Asserting Logs"},{"path":"Samples~/5_AssertingLogs_Solution","description":"How to test and verify code that logs to the console log.","displayName":"Exercise 5: Solution"},{"path":"Samples~/6_SetUpTearDown","description":"In this exercise, you will get practical experience in using the NUnit attributes [SetUp] and [TearDown] in order to reduce code duplication in your tests.","displayName":"Exercise 6: Set Up and Tear Down"},{"path":"Samples~/6_SetUpTearDown_Solution","description":"In this exercise, you will get practical experience in using the NUnit attributes [SetUp] and [TearDown] in order to reduce code duplication in your tests.","displayName":"Exercise 6: Solution"},{"path":"Samples~/7_PlayModeTests","description":"This exercise introduces the concept of PlayMode tests and will teach you when to use PlayMode tests, how to set up assembly definition for PlayMode tests, and how to run tests in PlayMode.","displayName":"Exercise 7: PlayMode Tests"},{"path":"Samples~/7_PlayModeTests_Solution","description":"This exercise introduces the concept of PlayMode tests and will teach you when to use PlayMode tests, how to set up assembly definition for PlayMode tests, and how to run tests in PlayMode.","displayName":"Exercise 7: Solution"},{"path":"Samples~/8_PlayModeTests_InPlayer","description":"This section will teach you how to run PlayMode tests in a Standalone player on your machine.","displayName":"Exercise 8: PlayMode Tests in Player"},{"path":"Samples~/9_UnityTestAttribute","description":"This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.","displayName":"Exercise 9: UnityTest Attribute"},{"path":"Samples~/9_UnityTestAttribute_Solution","description":"This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.","displayName":"Exercise 9: Solution"},{"path":"Samples~/10_LongRunningTests","description":"This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.","displayName":"Exercise 10: Long Running Tests"},{"path":"Samples~/10_LongRunningTests_Solution","description":"This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.","displayName":"Exercise 10: Solution"},{"path":"Samples~/11_SceneBasedTests","description":"In this exercise, you will learn how to test content that is stored in a scene.","displayName":"Exercise 11: Scene Based Tests"},{"path":"Samples~/11_SceneBasedTests_Solution","description":"In this exercise, you will learn how to test content that is stored in a scene.","displayName":"Exercise 11: Solution"},{"path":"Samples~/12_BuildSetupCleanup","description":"This section will introduce you to the hooks in the test framework for before and after the player build.","displayName":"Exercise 12: Build Setup and Cleanup"},{"path":"Samples~/12_BuildSetupCleanup_Solution","description":"This section will introduce you to the hooks in the test framework for before and after the player build.","displayName":"Exercise 12: Solution"},{"path":"Samples~/13_DomainReload","description":"In this section, you will learn how to invoke and wait for Domain Reloads.","displayName":"Exercise 13: Domain Reload"},{"path":"Samples~/13_DomainReload_Solution","description":"In this section, you will learn how to invoke and wait for Domain Reloads.","displayName":"Exercise 13: Solution"},{"path":"Samples~/14_PreserveTestState","description":"This section will cover how to let variables and information in your tests survive domain reloads using serialization.","displayName":"Exercise 14: Preserve Test State"},{"path":"Samples~/14_PreserveTestState_Solution","description":"This section will cover how to let variables and information in your tests survive domain reloads using serialization.","displayName":"Exercise 14: Solution"},{"path":"Samples~/15_TestCases","description":"This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.","displayName":"Exercise 15: Test Cases"},{"path":"Samples~/15_TestCases_Solution","description":"This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.","displayName":"Exercise 15: Solution"},{"path":"Samples~/16_CustomAttributes","description":"In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.","displayName":"Exercise 16: Custom Attributes"},{"path":"Samples~/16_CustomAttributes_Solution","description":"In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.","displayName":"Exercise 16: Solution"},{"path":"Samples~/17_RunningTestsProgrammatically","description":"This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.","displayName":"Exercise 17: Runnings Tests Programmatically"},{"path":"Samples~/17_RunningTestsProgrammatically_Solution","description":"This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.","displayName":"Exercise 17: Solution"}],"unityRelease":"1f1","documentationUrl":"https://docs.unity3d.com/Packages/com.unity.test-framework@1.4/manual/index.html","name":"com.unity.test-framework","version":"1.4.6","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"2.0.3","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"5ac417e07314c8f6afba8109738c32b82d391e68","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.4.6.tgz"}},"1.4.5":{"_upm":{"changelog":"- Fixed an issue where batchmode test runs would never finish if a test yielded WaitForEndOfFrame (DSTR-1009).\n- Fixed an issue where the location prompt was required when using the Install all tests in 'build' folder option during test builds.\n- Canceling a PlayMode test run now correctly restores the scene setup, instead of leaving the editor in the test scene.\n- Fixed an issue where UnitySetUp did not fail when nested coroutines threw an exception (DSTR-1007).\n- When selecting multiple tests and running them, the test runner now correctly updates the details of the first selected test (UTF-602).\n- The interaction mode and application idle time settings is now being changes when running tests, resulting in faster test runs if not already in use (applies to 2020.3 and later) (DSTR-690).\n- Fixed an issue where some NUnit attributes caused errors and stopped async test runs (DSTR-1040).\n- Added support for the MaxTime attribute on async and UnityTest methods (DSTR-1040).\n- Fixed a memory leak issue where a large number of domain reloads within the same test could crash the editor (DSTR-1023).\n- Changed to use a progress bar inside the test runner window when running tests. This ensures that the progress bar is not fighting to display when e.g. compiling scripts and also makes it easier to cancel a run. This progress bar is displayed for all types of runs (EditMode, PlayMode and Player). (UTF-596).\n- Fixed an issue where ignored tests with an attributes did not display the ignore reason in the test runner UI.\n- Having multiple tests with the same unique id no longer gives a error with 'An item with the same key has already been added', but instead logs an warning about the duplicate id.\n- The result icons for test suites should no longer flicker when running tests.\n- Ensured that test results ignored in the editor but run on a player are not overwritten with ignore status when shown in the UI (DSTR-1042).\n- Fixed an issue where the RunStarted event was not invoked correctly during a test run (DSTR-1046).\n- Fixed an issue where TestStarted and TestFinished events were repeated for ignored test fixtures after a domain reload (DSTR-986)."},"type":"assets","unity":"2019.4","upmCi":{"footprint":"594e04e8fc9a267b604d2087599a8c6538f62574"},"samples":[{"path":"Samples~/1_RunningTest_Project","description":"This exercise will teach you how to set up a simple Unity project with a test assembly and tests.","displayName":"Exercise 1: Running Tests","interactiveImport":true},{"path":"Samples~/1_RunningTest_Project_Solution","description":"This exercise will teach you how to set up a simple Unity project with a test assembly and tests.","displayName":"Exercise 1: Solution","interactiveImport":true},{"path":"Samples~/2_ActArrangeAssert","description":"In this exercise, you will learn about the core unit testing principle of AAA (Arrange, Act, Assert), which will help you structure your unit test.","displayName":"Exercise 2: Arrange, Act, Assert","interactiveImport":true},{"path":"Samples~/2_ActArrangeAssert_Solution","description":"In this exercise, you will learn about the core unit testing principle of AAA (Arrange, Act, Assert), which will help you structure your unit test.","displayName":"Exercise 2: Solution","interactiveImport":true},{"path":"Samples~/3_SemanticTestAssertion","description":"You will be introduced to the Assert.That and related classes.","displayName":"Exercise 3: Semantic Test Assertion","interactiveImport":true},{"path":"Samples~/3_SemanticTestAssertion_Solution","description":"You will be introduced to the Assert.That and related classes.","displayName":"Exercise 3: Solution","interactiveImport":true},{"path":"Samples~/4_CustomComparison","description":"This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.","displayName":"Exercise 4: Custom Comparison","interactiveImport":true},{"path":"Samples~/4_CustomComparison_Solution","description":"This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.","displayName":"Exercise 4: Solution","interactiveImport":true},{"path":"Samples~/5_AssertingLogs","description":"How to test and verify code that logs to the console log.","displayName":"Exercise 5: Asserting Logs","interactiveImport":true},{"path":"Samples~/5_AssertingLogs_Solution","description":"How to test and verify code that logs to the console log.","displayName":"Exercise 5: Solution","interactiveImport":true},{"path":"Samples~/6_SetUpTearDown","description":"In this exercise, you will get practical experience in using the NUnit attributes [SetUp] and [TearDown] in order to reduce code duplication in your tests.","displayName":"Exercise 6: Set Up and Tear Down","interactiveImport":true},{"path":"Samples~/6_SetUpTearDown_Solution","description":"In this exercise, you will get practical experience in using the NUnit attributes [SetUp] and [TearDown] in order to reduce code duplication in your tests.","displayName":"Exercise 6: Solution","interactiveImport":true},{"path":"Samples~/7_PlayModeTests","description":"This exercise introduces the concept of PlayMode tests and will teach you when to use PlayMode tests, how to set up assembly definition for PlayMode tests, and how to run tests in PlayMode.","displayName":"Exercise 7: PlayMode Tests","interactiveImport":true},{"path":"Samples~/7_PlayModeTests_Solution","description":"This exercise introduces the concept of PlayMode tests and will teach you when to use PlayMode tests, how to set up assembly definition for PlayMode tests, and how to run tests in PlayMode.","displayName":"Exercise 7: Solution","interactiveImport":true},{"path":"Samples~/8_PlayModeTests_InPlayer","description":"This section will teach you how to run PlayMode tests in a Standalone player on your machine.","displayName":"Exercise 8: PlayMode Tests in Player","interactiveImport":true},{"path":"Samples~/9_UnityTestAttribute","description":"This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.","displayName":"Exercise 9: UnityTest Attribute","interactiveImport":true},{"path":"Samples~/9_UnityTestAttribute_Solution","description":"This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.","displayName":"Exercise 9: Solution","interactiveImport":true},{"path":"Samples~/10_LongRunningTests","description":"This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.","displayName":"Exercise 10: Long Running Tests","interactiveImport":true},{"path":"Samples~/10_LongRunningTests_Solution","description":"This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.","displayName":"Exercise 10: Solution","interactiveImport":true},{"path":"Samples~/11_SceneBasedTests","description":"In this exercise, you will learn how to test content that is stored in a scene.","displayName":"Exercise 11: Scene Based Tests","interactiveImport":true},{"path":"Samples~/11_SceneBasedTests_Solution","description":"In this exercise, you will learn how to test content that is stored in a scene.","displayName":"Exercise 11: Solution","interactiveImport":true},{"path":"Samples~/12_BuildSetupCleanup","description":"This section will introduce you to the hooks in the test framework for before and after the player build.","displayName":"Exercise 12: Build Setup and Cleanup","interactiveImport":true},{"path":"Samples~/12_BuildSetupCleanup_Solution","description":"This section will introduce you to the hooks in the test framework for before and after the player build.","displayName":"Exercise 12: Solution","interactiveImport":true},{"path":"Samples~/13_DomainReload","description":"In this section, you will learn how to invoke and wait for Domain Reloads.","displayName":"Exercise 13: Domain Reload","interactiveImport":true},{"path":"Samples~/13_DomainReload_Solution","description":"In this section, you will learn how to invoke and wait for Domain Reloads.","displayName":"Exercise 13: Solution","interactiveImport":true},{"path":"Samples~/14_PreserveTestState","description":"This section will cover how to let variables and information in your tests survive domain reloads using serialization.","displayName":"Exercise 14: Preserve Test State","interactiveImport":true},{"path":"Samples~/14_PreserveTestState_Solution","description":"This section will cover how to let variables and information in your tests survive domain reloads using serialization.","displayName":"Exercise 14: Solution","interactiveImport":true},{"path":"Samples~/15_TestCases","description":"This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.","displayName":"Exercise 15: Test Cases","interactiveImport":true},{"path":"Samples~/15_TestCases_Solution","description":"This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.","displayName":"Exercise 15: Solution","interactiveImport":true},{"path":"Samples~/16_CustomAttributes","description":"In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.","displayName":"Exercise 16: Custom Attributes","interactiveImport":true},{"path":"Samples~/16_CustomAttributes_Solution","description":"In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.","displayName":"Exercise 16: Solution","interactiveImport":true},{"path":"Samples~/17_RunningTestsProgrammatically","description":"This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.","displayName":"Exercise 17: Runnings Tests Programmatically","interactiveImport":true},{"path":"Samples~/17_RunningTestsProgrammatically_Solution","description":"This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.","displayName":"Exercise 17: Solution","interactiveImport":true}],"repository":{"url":"https://github.com/Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"e50747c90fb18ab9f4f350b60d0fcdcae19bdebc"},"unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.4.5"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.test-framework@1.4/manual/index.html","name":"com.unity.test-framework","version":"1.4.5","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"2.0.3","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"0a21eb82d95cd331643a1e0ce4e8e9a5f18954c8","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.4.5.tgz"}},"1.4.4":{"_upm":{"changelog":"- Fix the issue where playmode controller wasn't being set and cleaned up correctly, causing issues post test run. (DSTR-1025)\n- Fixed an issue where Oculus Quest headsets might timeout before the test run starts (DSTR-404).\n- Fixed a regression where the console output would no longer get attached to the test result for PlayMode."},"type":"assets","unity":"2019.4","upmCi":{"footprint":"65d65220211a4f0e8ad5ed8f526fa49e63cdf5ec"},"samples":[{"path":"Samples~/1_RunningTest_Project","description":"This exercise will teach you how to set up a simple Unity project with a test assembly and tests.","displayName":"Exercise 1: Running Tests","interactiveImport":true},{"path":"Samples~/1_RunningTest_Project_Solution","description":"This exercise will teach you how to set up a simple Unity project with a test assembly and tests.","displayName":"Exercise 1: Solution","interactiveImport":true},{"path":"Samples~/2_ActArrangeAssert","description":"In this exercise, you will learn about the core unit testing principle of AAA (Arrange, Act, Assert), which will help you structure your unit test.","displayName":"Exercise 2: Arrange, Act, Assert","interactiveImport":true},{"path":"Samples~/2_ActArrangeAssert_Solution","description":"In this exercise, you will learn about the core unit testing principle of AAA (Arrange, Act, Assert), which will help you structure your unit test.","displayName":"Exercise 2: Solution","interactiveImport":true},{"path":"Samples~/3_SemanticTestAssertion","description":"You will be introduced to the Assert.That and related classes.","displayName":"Exercise 3: Semantic Test Assertion","interactiveImport":true},{"path":"Samples~/3_SemanticTestAssertion_Solution","description":"You will be introduced to the Assert.That and related classes.","displayName":"Exercise 3: Solution","interactiveImport":true},{"path":"Samples~/4_CustomComparison","description":"This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.","displayName":"Exercise 4: Custom Comparison","interactiveImport":true},{"path":"Samples~/4_CustomComparison_Solution","description":"This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.","displayName":"Exercise 4: Solution","interactiveImport":true},{"path":"Samples~/5_AssertingLogs","description":"How to test and verify code that logs to the console log.","displayName":"Exercise 5: Asserting Logs","interactiveImport":true},{"path":"Samples~/5_AssertingLogs_Solution","description":"How to test and verify code that logs to the console log.","displayName":"Exercise 5: Solution","interactiveImport":true},{"path":"Samples~/6_SetUpTearDown","description":"In this exercise, you will get practical experience in using the NUnit attributes [SetUp] and [TearDown] in order to reduce code duplication in your tests.","displayName":"Exercise 6: Set Up and Tear Down","interactiveImport":true},{"path":"Samples~/6_SetUpTearDown_Solution","description":"In this exercise, you will get practical experience in using the NUnit attributes [SetUp] and [TearDown] in order to reduce code duplication in your tests.","displayName":"Exercise 6: Solution","interactiveImport":true},{"path":"Samples~/7_PlayModeTests","description":"This exercise introduces the concept of PlayMode tests and will teach you when to use PlayMode tests, how to set up assembly definition for PlayMode tests, and how to run tests in PlayMode.","displayName":"Exercise 7: PlayMode Tests","interactiveImport":true},{"path":"Samples~/7_PlayModeTests_Solution","description":"This exercise introduces the concept of PlayMode tests and will teach you when to use PlayMode tests, how to set up assembly definition for PlayMode tests, and how to run tests in PlayMode.","displayName":"Exercise 7: Solution","interactiveImport":true},{"path":"Samples~/8_PlayModeTests_InPlayer","description":"This section will teach you how to run PlayMode tests in a Standalone player on your machine.","displayName":"Exercise 8: PlayMode Tests in Player","interactiveImport":true},{"path":"Samples~/9_UnityTestAttribute","description":"This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.","displayName":"Exercise 9: UnityTest Attribute","interactiveImport":true},{"path":"Samples~/9_UnityTestAttribute_Solution","description":"This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.","displayName":"Exercise 9: Solution","interactiveImport":true},{"path":"Samples~/10_LongRunningTests","description":"This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.","displayName":"Exercise 10: Long Running Tests","interactiveImport":true},{"path":"Samples~/10_LongRunningTests_Solution","description":"This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.","displayName":"Exercise 10: Solution","interactiveImport":true},{"path":"Samples~/11_SceneBasedTests","description":"In this exercise, you will learn how to test content that is stored in a scene.","displayName":"Exercise 11: Scene Based Tests","interactiveImport":true},{"path":"Samples~/11_SceneBasedTests_Solution","description":"In this exercise, you will learn how to test content that is stored in a scene.","displayName":"Exercise 11: Solution","interactiveImport":true},{"path":"Samples~/12_BuildSetupCleanup","description":"This section will introduce you to the hooks in the test framework for before and after the player build.","displayName":"Exercise 12: Build Setup and Cleanup","interactiveImport":true},{"path":"Samples~/12_BuildSetupCleanup_Solution","description":"This section will introduce you to the hooks in the test framework for before and after the player build.","displayName":"Exercise 12: Solution","interactiveImport":true},{"path":"Samples~/13_DomainReload","description":"In this section, you will learn how to invoke and wait for Domain Reloads.","displayName":"Exercise 13: Domain Reload","interactiveImport":true},{"path":"Samples~/13_DomainReload_Solution","description":"In this section, you will learn how to invoke and wait for Domain Reloads.","displayName":"Exercise 13: Solution","interactiveImport":true},{"path":"Samples~/14_PreserveTestState","description":"This section will cover how to let variables and information in your tests survive domain reloads using serialization.","displayName":"Exercise 14: Preserve Test State","interactiveImport":true},{"path":"Samples~/14_PreserveTestState_Solution","description":"This section will cover how to let variables and information in your tests survive domain reloads using serialization.","displayName":"Exercise 14: Solution","interactiveImport":true},{"path":"Samples~/15_TestCases","description":"This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.","displayName":"Exercise 15: Test Cases","interactiveImport":true},{"path":"Samples~/15_TestCases_Solution","description":"This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.","displayName":"Exercise 15: Solution","interactiveImport":true},{"path":"Samples~/16_CustomAttributes","description":"In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.","displayName":"Exercise 16: Custom Attributes","interactiveImport":true},{"path":"Samples~/16_CustomAttributes_Solution","description":"In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.","displayName":"Exercise 16: Solution","interactiveImport":true},{"path":"Samples~/17_RunningTestsProgrammatically","description":"This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.","displayName":"Exercise 17: Runnings Tests Programmatically","interactiveImport":true},{"path":"Samples~/17_RunningTestsProgrammatically_Solution","description":"This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.","displayName":"Exercise 17: Solution","interactiveImport":true}],"repository":{"url":"https://github.com/Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"c9f8df94dd6b521dfd42d4d21d026130455299a5"},"unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.4.4"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.test-framework@1.4/manual/index.html","name":"com.unity.test-framework","version":"1.4.4","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"2.0.3","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"4e62d75b705a73b10f689eb9441e75e69dcd0116","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.4.4.tgz"}},"1.4.3":{"_upm":{"changelog":"- Fixed a performance issue in relation to the new ui, where running a large selection of tests did not perform well. (DSTR-983)\n- The test tree no longer is fully expanded when the window is first opened, fixing test tree explosion. (DSTR-985)\n- Fixed an issue in Solution 13 of Samples where the path was pointing to a wrong location. (DSTR-1005)\n- Updated documentation of Solution 13 of Samples to reflect more accurate solution for the example. (DSTR-1005)\n- Added ability to build all or selected tests from test runner UI. (UTF-553)"},"type":"assets","unity":"2019.4","upmCi":{"footprint":"a86383bc10b7483798fb0c18c104487fc98f4522"},"samples":[{"path":"Samples~/1_RunningTest_Project","description":"This exercise will teach you how to set up a simple Unity project with a test assembly and tests.","displayName":"Exercise 1: Running Tests","interactiveImport":true},{"path":"Samples~/1_RunningTest_Project_Solution","description":"This exercise will teach you how to set up a simple Unity project with a test assembly and tests.","displayName":"Exercise 1: Solution","interactiveImport":true},{"path":"Samples~/2_ActArrangeAssert","description":"In this exercise, you will learn about the core unit testing principle of AAA (Arrange, Act, Assert), which will help you structure your unit test.","displayName":"Exercise 2: Arrange, Act, Assert","interactiveImport":true},{"path":"Samples~/2_ActArrangeAssert_Solution","description":"In this exercise, you will learn about the core unit testing principle of AAA (Arrange, Act, Assert), which will help you structure your unit test.","displayName":"Exercise 2: Solution","interactiveImport":true},{"path":"Samples~/3_SemanticTestAssertion","description":"You will be introduced to the Assert.That and related classes.","displayName":"Exercise 3: Semantic Test Assertion","interactiveImport":true},{"path":"Samples~/3_SemanticTestAssertion_Solution","description":"You will be introduced to the Assert.That and related classes.","displayName":"Exercise 3: Solution","interactiveImport":true},{"path":"Samples~/4_CustomComparison","description":"This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.","displayName":"Exercise 4: Custom Comparison","interactiveImport":true},{"path":"Samples~/4_CustomComparison_Solution","description":"This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.","displayName":"Exercise 4: Solution","interactiveImport":true},{"path":"Samples~/5_AssertingLogs","description":"How to test and verify code that logs to the console log.","displayName":"Exercise 5: Asserting Logs","interactiveImport":true},{"path":"Samples~/5_AssertingLogs_Solution","description":"How to test and verify code that logs to the console log.","displayName":"Exercise 5: Solution","interactiveImport":true},{"path":"Samples~/6_SetUpTearDown","description":"In this exercise, you will get practical experience in using the NUnit attributes [SetUp] and [TearDown] in order to reduce code duplication in your tests.","displayName":"Exercise 6: Set Up and Tear Down","interactiveImport":true},{"path":"Samples~/6_SetUpTearDown_Solution","description":"In this exercise, you will get practical experience in using the NUnit attributes [SetUp] and [TearDown] in order to reduce code duplication in your tests.","displayName":"Exercise 6: Solution","interactiveImport":true},{"path":"Samples~/7_PlayModeTests","description":"This exercise introduces the concept of PlayMode tests and will teach you when to use PlayMode tests, how to set up assembly definition for PlayMode tests, and how to run tests in PlayMode.","displayName":"Exercise 7: PlayMode Tests","interactiveImport":true},{"path":"Samples~/7_PlayModeTests_Solution","description":"This exercise introduces the concept of PlayMode tests and will teach you when to use PlayMode tests, how to set up assembly definition for PlayMode tests, and how to run tests in PlayMode.","displayName":"Exercise 7: Solution","interactiveImport":true},{"path":"Samples~/8_PlayModeTests_InPlayer","description":"This section will teach you how to run PlayMode tests in a Standalone player on your machine.","displayName":"Exercise 8: PlayMode Tests in Player","interactiveImport":true},{"path":"Samples~/9_UnityTestAttribute","description":"This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.","displayName":"Exercise 9: UnityTest Attribute","interactiveImport":true},{"path":"Samples~/9_UnityTestAttribute_Solution","description":"This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.","displayName":"Exercise 9: Solution","interactiveImport":true},{"path":"Samples~/10_LongRunningTests","description":"This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.","displayName":"Exercise 10: Long Running Tests","interactiveImport":true},{"path":"Samples~/10_LongRunningTests_Solution","description":"This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.","displayName":"Exercise 10: Solution","interactiveImport":true},{"path":"Samples~/11_SceneBasedTests","description":"In this exercise, you will learn how to test content that is stored in a scene.","displayName":"Exercise 11: Scene Based Tests","interactiveImport":true},{"path":"Samples~/11_SceneBasedTests_Solution","description":"In this exercise, you will learn how to test content that is stored in a scene.","displayName":"Exercise 11: Solution","interactiveImport":true},{"path":"Samples~/12_BuildSetupCleanup","description":"This section will introduce you to the hooks in the test framework for before and after the player build.","displayName":"Exercise 12: Build Setup and Cleanup","interactiveImport":true},{"path":"Samples~/12_BuildSetupCleanup_Solution","description":"This section will introduce you to the hooks in the test framework for before and after the player build.","displayName":"Exercise 12: Solution","interactiveImport":true},{"path":"Samples~/13_DomainReload","description":"In this section, you will learn how to invoke and wait for Domain Reloads.","displayName":"Exercise 13: Domain Reload","interactiveImport":true},{"path":"Samples~/13_DomainReload_Solution","description":"In this section, you will learn how to invoke and wait for Domain Reloads.","displayName":"Exercise 13: Solution","interactiveImport":true},{"path":"Samples~/14_PreserveTestState","description":"This section will cover how to let variables and information in your tests survive domain reloads using serialization.","displayName":"Exercise 14: Preserve Test State","interactiveImport":true},{"path":"Samples~/14_PreserveTestState_Solution","description":"This section will cover how to let variables and information in your tests survive domain reloads using serialization.","displayName":"Exercise 14: Solution","interactiveImport":true},{"path":"Samples~/15_TestCases","description":"This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.","displayName":"Exercise 15: Test Cases","interactiveImport":true},{"path":"Samples~/15_TestCases_Solution","description":"This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.","displayName":"Exercise 15: Solution","interactiveImport":true},{"path":"Samples~/16_CustomAttributes","description":"In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.","displayName":"Exercise 16: Custom Attributes","interactiveImport":true},{"path":"Samples~/16_CustomAttributes_Solution","description":"In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.","displayName":"Exercise 16: Solution","interactiveImport":true},{"path":"Samples~/17_RunningTestsProgrammatically","description":"This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.","displayName":"Exercise 17: Runnings Tests Programmatically","interactiveImport":true},{"path":"Samples~/17_RunningTestsProgrammatically_Solution","description":"This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.","displayName":"Exercise 17: Solution","interactiveImport":true}],"repository":{"url":"https://github.com/Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"b2b8bb3a69967e76a874a55ff39aa35e52ea2095"},"unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.4.3"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.test-framework@1.4/manual/index.html","name":"com.unity.test-framework","version":"1.4.3","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"2.0.3","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"95d6b5d0cb7ec79b743d67718a706e5f344fb7f4","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.4.3.tgz"}},"1.4.2":{"_upm":{"changelog":"- Issue where playmode tests were not recording test results correctly after the first run was fixed. (DSTR-984)\n- A timeout message is now printed when the test failures occurs before the test finishes. (DSTR-476)\n- Nested enumerators are now having their first step executed in the same frame as the parent enumerator. (DSTR-888)\n- Fixed an issue where test projects without PlayMode tests would give the error \"No callbacks received.\" when running in batchmode on some Unity versions."},"type":"assets","unity":"2019.4","upmCi":{"footprint":"f1fb285e06f2806710d3d502c57e017039cb8753"},"samples":[{"path":"Samples~/1_RunningTest_Project","description":"This exercise will teach you how to set up a simple Unity project with a test assembly and tests.","displayName":"Exercise 1: Running Tests","interactiveImport":true},{"path":"Samples~/1_RunningTest_Project_Solution","description":"This exercise will teach you how to set up a simple Unity project with a test assembly and tests.","displayName":"Exercise 1: Solution","interactiveImport":true},{"path":"Samples~/2_ActArrangeAssert","description":"In this exercise, you will learn about the core unit testing principle of AAA (Arrange, Act, Assert), which will help you structure your unit test.","displayName":"Exercise 2: Arrange, Act, Assert","interactiveImport":true},{"path":"Samples~/2_ActArrangeAssert_Solution","description":"In this exercise, you will learn about the core unit testing principle of AAA (Arrange, Act, Assert), which will help you structure your unit test.","displayName":"Exercise 2: Solution","interactiveImport":true},{"path":"Samples~/3_SemanticTestAssertion","description":"You will be introduced to the Assert.That and related classes.","displayName":"Exercise 3: Semantic Test Assertion","interactiveImport":true},{"path":"Samples~/3_SemanticTestAssertion_Solution","description":"You will be introduced to the Assert.That and related classes.","displayName":"Exercise 3: Solution","interactiveImport":true},{"path":"Samples~/4_CustomComparison","description":"This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.","displayName":"Exercise 4: Custom Comparison","interactiveImport":true},{"path":"Samples~/4_CustomComparison_Solution","description":"This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.","displayName":"Exercise 4: Solution","interactiveImport":true},{"path":"Samples~/5_AssertingLogs","description":"How to test and verify code that logs to the console log.","displayName":"Exercise 5: Asserting Logs","interactiveImport":true},{"path":"Samples~/5_AssertingLogs_Solution","description":"How to test and verify code that logs to the console log.","displayName":"Exercise 5: Solution","interactiveImport":true},{"path":"Samples~/6_SetUpTearDown","description":"In this exercise, you will get practical experience in using the NUnit attributes [SetUp] and [TearDown] in order to reduce code duplication in your tests.","displayName":"Exercise 6: Set Up and Tear Down","interactiveImport":true},{"path":"Samples~/6_SetUpTearDown_Solution","description":"In this exercise, you will get practical experience in using the NUnit attributes [SetUp] and [TearDown] in order to reduce code duplication in your tests.","displayName":"Exercise 6: Solution","interactiveImport":true},{"path":"Samples~/7_PlayModeTests","description":"This exercise introduces the concept of PlayMode tests and will teach you when to use PlayMode tests, how to set up assembly definition for PlayMode tests, and how to run tests in PlayMode.","displayName":"Exercise 7: PlayMode Tests","interactiveImport":true},{"path":"Samples~/7_PlayModeTests_Solution","description":"This exercise introduces the concept of PlayMode tests and will teach you when to use PlayMode tests, how to set up assembly definition for PlayMode tests, and how to run tests in PlayMode.","displayName":"Exercise 7: Solution","interactiveImport":true},{"path":"Samples~/8_PlayModeTests_InPlayer","description":"This section will teach you how to run PlayMode tests in a Standalone player on your machine.","displayName":"Exercise 8: PlayMode Tests in Player","interactiveImport":true},{"path":"Samples~/9_UnityTestAttribute","description":"This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.","displayName":"Exercise 9: UnityTest Attribute","interactiveImport":true},{"path":"Samples~/9_UnityTestAttribute_Solution","description":"This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.","displayName":"Exercise 9: Solution","interactiveImport":true},{"path":"Samples~/10_LongRunningTests","description":"This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.","displayName":"Exercise 10: Long Running Tests","interactiveImport":true},{"path":"Samples~/10_LongRunningTests_Solution","description":"This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.","displayName":"Exercise 10: Solution","interactiveImport":true},{"path":"Samples~/11_SceneBasedTests","description":"In this exercise, you will learn how to test content that is stored in a scene.","displayName":"Exercise 11: Scene Based Tests","interactiveImport":true},{"path":"Samples~/11_SceneBasedTests_Solution","description":"In this exercise, you will learn how to test content that is stored in a scene.","displayName":"Exercise 11: Solution","interactiveImport":true},{"path":"Samples~/12_BuildSetupCleanup","description":"This section will introduce you to the hooks in the test framework for before and after the player build.","displayName":"Exercise 12: Build Setup and Cleanup","interactiveImport":true},{"path":"Samples~/12_BuildSetupCleanup_Solution","description":"This section will introduce you to the hooks in the test framework for before and after the player build.","displayName":"Exercise 12: Solution","interactiveImport":true},{"path":"Samples~/13_DomainReload","description":"In this section, you will learn how to invoke and wait for Domain Reloads.","displayName":"Exercise 13: Domain Reload","interactiveImport":true},{"path":"Samples~/13_DomainReload_Solution","description":"In this section, you will learn how to invoke and wait for Domain Reloads.","displayName":"Exercise 13: Solution","interactiveImport":true},{"path":"Samples~/14_PreserveTestState","description":"This section will cover how to let variables and information in your tests survive domain reloads using serialization.","displayName":"Exercise 14: Preserve Test State","interactiveImport":true},{"path":"Samples~/14_PreserveTestState_Solution","description":"This section will cover how to let variables and information in your tests survive domain reloads using serialization.","displayName":"Exercise 14: Solution","interactiveImport":true},{"path":"Samples~/15_TestCases","description":"This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.","displayName":"Exercise 15: Test Cases","interactiveImport":true},{"path":"Samples~/15_TestCases_Solution","description":"This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.","displayName":"Exercise 15: Solution","interactiveImport":true},{"path":"Samples~/16_CustomAttributes","description":"In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.","displayName":"Exercise 16: Custom Attributes","interactiveImport":true},{"path":"Samples~/16_CustomAttributes_Solution","description":"In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.","displayName":"Exercise 16: Solution","interactiveImport":true},{"path":"Samples~/17_RunningTestsProgrammatically","description":"This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.","displayName":"Exercise 17: Runnings Tests Programmatically","interactiveImport":true},{"path":"Samples~/17_RunningTestsProgrammatically_Solution","description":"This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.","displayName":"Exercise 17: Solution","interactiveImport":true}],"repository":{"url":"https://github.com/Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"29edcbd6a45d5c7554f251728ff91c3676bfffa3"},"unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.4.2"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.test-framework@1.4/manual/index.html","name":"com.unity.test-framework","version":"1.4.2","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"2.0.3","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"29a5561c880058d0c139f7e940d5f4103a68f6f2","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.4.2.tgz"}},"1.4.1":{"_upm":{"changelog":"- Multiple improvements to the UI, including better dropdowns, filtering, and a new test list view for Player.\n- Fixed uncategorized UI tests filtering for parameterized tests (DSTR-219).\n- In async tests, any failing logs will now first be evaluated after the async method has completed. (DSTR-839)"},"type":"assets","unity":"2019.4","upmCi":{"footprint":"0a4ea4de2ebe5e23c9bd5d30cabc6f5cc66a2423"},"samples":[{"path":"Samples~/1_RunningTest_Project","description":"This exercise will teach you how to set up a simple Unity project with a test assembly and tests.","displayName":"Exercise 1: Running Tests","interactiveImport":true},{"path":"Samples~/1_RunningTest_Project_Solution","description":"This exercise will teach you how to set up a simple Unity project with a test assembly and tests.","displayName":"Exercise 1: Solution","interactiveImport":true},{"path":"Samples~/2_ActArrangeAssert","description":"In this exercise, you will learn about the core unit testing principle of AAA (Arrange, Act, Assert), which will help you structure your unit test.","displayName":"Exercise 2: Arrange, Act, Assert","interactiveImport":true},{"path":"Samples~/2_ActArrangeAssert_Solution","description":"In this exercise, you will learn about the core unit testing principle of AAA (Arrange, Act, Assert), which will help you structure your unit test.","displayName":"Exercise 2: Solution","interactiveImport":true},{"path":"Samples~/3_SemanticTestAssertion","description":"You will be introduced to the Assert.That and related classes.","displayName":"Exercise 3: Semantic Test Assertion","interactiveImport":true},{"path":"Samples~/3_SemanticTestAssertion_Solution","description":"You will be introduced to the Assert.That and related classes.","displayName":"Exercise 3: Solution","interactiveImport":true},{"path":"Samples~/4_CustomComparison","description":"This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.","displayName":"Exercise 4: Custom Comparison","interactiveImport":true},{"path":"Samples~/4_CustomComparison_Solution","description":"This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.","displayName":"Exercise 4: Solution","interactiveImport":true},{"path":"Samples~/5_AssertingLogs","description":"How to test and verify code that logs to the console log.","displayName":"Exercise 5: Asserting Logs","interactiveImport":true},{"path":"Samples~/5_AssertingLogs_Solution","description":"How to test and verify code that logs to the console log.","displayName":"Exercise 5: Solution","interactiveImport":true},{"path":"Samples~/6_SetUpTearDown","description":"In this exercise, you will get practical experience in using the NUnit attributes [SetUp] and [TearDown] in order to reduce code duplication in your tests.","displayName":"Exercise 6: Set Up and Tear Down","interactiveImport":true},{"path":"Samples~/6_SetUpTearDown_Solution","description":"In this exercise, you will get practical experience in using the NUnit attributes [SetUp] and [TearDown] in order to reduce code duplication in your tests.","displayName":"Exercise 6: Solution","interactiveImport":true},{"path":"Samples~/7_PlayModeTests","description":"This exercise introduces the concept of PlayMode tests and will teach you when to use PlayMode tests, how to set up assembly definition for PlayMode tests, and how to run tests in PlayMode.","displayName":"Exercise 7: PlayMode Tests","interactiveImport":true},{"path":"Samples~/7_PlayModeTests_Solution","description":"This exercise introduces the concept of PlayMode tests and will teach you when to use PlayMode tests, how to set up assembly definition for PlayMode tests, and how to run tests in PlayMode.","displayName":"Exercise 7: Solution","interactiveImport":true},{"path":"Samples~/8_PlayModeTests_InPlayer","description":"This section will teach you how to run PlayMode tests in a Standalone player on your machine.","displayName":"Exercise 8: PlayMode Tests in Player","interactiveImport":true},{"path":"Samples~/9_UnityTestAttribute","description":"This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.","displayName":"Exercise 9: UnityTest Attribute","interactiveImport":true},{"path":"Samples~/9_UnityTestAttribute_Solution","description":"This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.","displayName":"Exercise 9: Solution","interactiveImport":true},{"path":"Samples~/10_LongRunningTests","description":"This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.","displayName":"Exercise 10: Long Running Tests","interactiveImport":true},{"path":"Samples~/10_LongRunningTests_Solution","description":"This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.","displayName":"Exercise 10: Solution","interactiveImport":true},{"path":"Samples~/11_SceneBasedTests","description":"In this exercise, you will learn how to test content that is stored in a scene.","displayName":"Exercise 11: Scene Based Tests","interactiveImport":true},{"path":"Samples~/11_SceneBasedTests_Solution","description":"In this exercise, you will learn how to test content that is stored in a scene.","displayName":"Exercise 11: Solution","interactiveImport":true},{"path":"Samples~/12_BuildSetupCleanup","description":"This section will introduce you to the hooks in the test framework for before and after the player build.","displayName":"Exercise 12: Build Setup and Cleanup","interactiveImport":true},{"path":"Samples~/12_BuildSetupCleanup_Solution","description":"This section will introduce you to the hooks in the test framework for before and after the player build.","displayName":"Exercise 12: Solution","interactiveImport":true},{"path":"Samples~/13_DomainReload","description":"In this section, you will learn how to invoke and wait for Domain Reloads.","displayName":"Exercise 13: Domain Reload","interactiveImport":true},{"path":"Samples~/13_DomainReload_Solution","description":"In this section, you will learn how to invoke and wait for Domain Reloads.","displayName":"Exercise 13: Solution","interactiveImport":true},{"path":"Samples~/14_PreserveTestState","description":"This section will cover how to let variables and information in your tests survive domain reloads using serialization.","displayName":"Exercise 14: Preserve Test State","interactiveImport":true},{"path":"Samples~/14_PreserveTestState_Solution","description":"This section will cover how to let variables and information in your tests survive domain reloads using serialization.","displayName":"Exercise 14: Solution","interactiveImport":true},{"path":"Samples~/15_TestCases","description":"This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.","displayName":"Exercise 15: Test Cases","interactiveImport":true},{"path":"Samples~/15_TestCases_Solution","description":"This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.","displayName":"Exercise 15: Solution","interactiveImport":true},{"path":"Samples~/16_CustomAttributes","description":"In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.","displayName":"Exercise 16: Custom Attributes","interactiveImport":true},{"path":"Samples~/16_CustomAttributes_Solution","description":"In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.","displayName":"Exercise 16: Solution","interactiveImport":true},{"path":"Samples~/17_RunningTestsProgrammatically","description":"This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.","displayName":"Exercise 17: Runnings Tests Programmatically","interactiveImport":true},{"path":"Samples~/17_RunningTestsProgrammatically_Solution","description":"This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.","displayName":"Exercise 17: Solution","interactiveImport":true}],"repository":{"url":"https://github.com/Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"147960f420428a4fc24c5f359e5f198a03567e36"},"unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.4.1"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.test-framework@1.4/manual/index.html","name":"com.unity.test-framework","version":"1.4.1","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"2.0.3","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"78768c74829e4a3c119d1aefd31d2fe720c45584","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.4.1.tgz"}},"1.4.0":{"_upm":{"changelog":"- Added api for saving test results to a file.\n- Added a button for saving the test results of the latest run.\n- Applied filtering to the ITestAdaptor argument of `ICallbacks.RunStarted` so that it corresponds to the actual test tree being run.\n- When running in player:\n  - the save scene dialog is shown when there are changes in the scene.\n  - the scene setup is restored after a completed run.\n- When running in playmode:\n  - the scene setup is restored after a completed run.\n- Added overloads of LogAssert.Expect which allow users to expect a log message without specifying a severity, which will match logged messages of any severity.\n- Added new `[ParametrizedIgnore]` attribute which allows ignoring tests based on arguments which were passed to the test method.\n- Added a new PreservedValuesAttribute to allow for using the nunit ValuesAttribute at players with a high stripping level (case DSTR-33).\n- Added api for canceling test runs."},"type":"assets","unity":"2019.4","upmCi":{"footprint":"16dd7a2132eb67a0bf3a8e60756d1770d9d2cc4d"},"samples":[{"path":"Samples~/1_RunningTest_Project","description":"This exercise will teach you how to set up a simple Unity project with a test assembly and tests.","displayName":"Exercise 1: Running Tests","interactiveImport":true},{"path":"Samples~/1_RunningTest_Project_Solution","description":"This exercise will teach you how to set up a simple Unity project with a test assembly and tests.","displayName":"Exercise 1: Solution","interactiveImport":true},{"path":"Samples~/2_ActArrangeAssert","description":"In this exercise, you will learn about the core unit testing principle of AAA (Arrange, Act, Assert), which will help you structure your unit test.","displayName":"Exercise 2: Arrange, Act, Assert","interactiveImport":true},{"path":"Samples~/2_ActArrangeAssert_Solution","description":"In this exercise, you will learn about the core unit testing principle of AAA (Arrange, Act, Assert), which will help you structure your unit test.","displayName":"Exercise 2: Solution","interactiveImport":true},{"path":"Samples~/3_SemanticTestAssertion","description":"You will be introduced to the Assert.That and related classes.","displayName":"Exercise 3: Semantic Test Assertion","interactiveImport":true},{"path":"Samples~/3_SemanticTestAssertion_Solution","description":"You will be introduced to the Assert.That and related classes.","displayName":"Exercise 3: Solution","interactiveImport":true},{"path":"Samples~/4_CustomComparison","description":"This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.","displayName":"Exercise 4: Custom Comparison","interactiveImport":true},{"path":"Samples~/4_CustomComparison_Solution","description":"This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.","displayName":"Exercise 4: Solution","interactiveImport":true},{"path":"Samples~/5_AssertingLogs","description":"How to test and verify code that logs to the console log.","displayName":"Exercise 5: Asserting Logs","interactiveImport":true},{"path":"Samples~/5_AssertingLogs_Solution","description":"How to test and verify code that logs to the console log.","displayName":"Exercise 5: Solution","interactiveImport":true},{"path":"Samples~/6_SetUpTearDown","description":"In this exercise, you will get practical experience in using the NUnit attributes [SetUp] and [TearDown] in order to reduce code duplication in your tests.","displayName":"Exercise 6: Set Up and Tear Down","interactiveImport":true},{"path":"Samples~/6_SetUpTearDown_Solution","description":"In this exercise, you will get practical experience in using the NUnit attributes [SetUp] and [TearDown] in order to reduce code duplication in your tests.","displayName":"Exercise 6: Solution","interactiveImport":true},{"path":"Samples~/7_PlayModeTests","description":"This exercise introduces the concept of PlayMode tests and will teach you when to use PlayMode tests, how to set up assembly definition for PlayMode tests, and how to run tests in PlayMode.","displayName":"Exercise 7: PlayMode Tests","interactiveImport":true},{"path":"Samples~/7_PlayModeTests_Solution","description":"This exercise introduces the concept of PlayMode tests and will teach you when to use PlayMode tests, how to set up assembly definition for PlayMode tests, and how to run tests in PlayMode.","displayName":"Exercise 7: Solution","interactiveImport":true},{"path":"Samples~/8_PlayModeTests_InPlayer","description":"This section will teach you how to run PlayMode tests in a Standalone player on your machine.","displayName":"Exercise 8: PlayMode Tests in Player","interactiveImport":true},{"path":"Samples~/9_UnityTestAttribute","description":"This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.","displayName":"Exercise 9: UnityTest Attribute","interactiveImport":true},{"path":"Samples~/9_UnityTestAttribute_Solution","description":"This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.","displayName":"Exercise 9: Solution","interactiveImport":true},{"path":"Samples~/10_LongRunningTests","description":"This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.","displayName":"Exercise 10: Long Running Tests","interactiveImport":true},{"path":"Samples~/10_LongRunningTests_Solution","description":"This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.","displayName":"Exercise 10: Solution","interactiveImport":true},{"path":"Samples~/11_SceneBasedTests","description":"In this exercise, you will learn how to test content that is stored in a scene.","displayName":"Exercise 11: Scene Based Tests","interactiveImport":true},{"path":"Samples~/11_SceneBasedTests_Solution","description":"In this exercise, you will learn how to test content that is stored in a scene.","displayName":"Exercise 11: Solution","interactiveImport":true},{"path":"Samples~/12_BuildSetupCleanup","description":"This section will introduce you to the hooks in the test framework for before and after the player build.","displayName":"Exercise 12: Build Setup and Cleanup","interactiveImport":true},{"path":"Samples~/12_BuildSetupCleanup_Solution","description":"This section will introduce you to the hooks in the test framework for before and after the player build.","displayName":"Exercise 12: Solution","interactiveImport":true},{"path":"Samples~/13_DomainReload","description":"In this section, you will learn how to invoke and wait for Domain Reloads.","displayName":"Exercise 13: Domain Reload","interactiveImport":true},{"path":"Samples~/13_DomainReload_Solution","description":"In this section, you will learn how to invoke and wait for Domain Reloads.","displayName":"Exercise 13: Solution","interactiveImport":true},{"path":"Samples~/14_PreserveTestState","description":"This section will cover how to let variables and information in your tests survive domain reloads using serialization.","displayName":"Exercise 14: Preserve Test State","interactiveImport":true},{"path":"Samples~/14_PreserveTestState_Solution","description":"This section will cover how to let variables and information in your tests survive domain reloads using serialization.","displayName":"Exercise 14: Solution","interactiveImport":true},{"path":"Samples~/15_TestCases","description":"This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.","displayName":"Exercise 15: Test Cases","interactiveImport":true},{"path":"Samples~/15_TestCases_Solution","description":"This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.","displayName":"Exercise 15: Solution","interactiveImport":true},{"path":"Samples~/16_CustomAttributes","description":"In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.","displayName":"Exercise 16: Custom Attributes","interactiveImport":true},{"path":"Samples~/16_CustomAttributes_Solution","description":"In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.","displayName":"Exercise 16: Solution","interactiveImport":true},{"path":"Samples~/17_RunningTestsProgrammatically","description":"This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.","displayName":"Exercise 17: Runnings Tests Programmatically","interactiveImport":true},{"path":"Samples~/17_RunningTestsProgrammatically_Solution","description":"This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.","displayName":"Exercise 17: Solution","interactiveImport":true}],"repository":{"url":"https://github.com/Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"69ea42f7de7b719febb362c0f8df442c9e03e8c7"},"unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.4.0"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.test-framework@1.4/manual/index.html","name":"com.unity.test-framework","version":"1.4.0","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"2.0.3","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"9b6b8539267eecce00fd63de302bf49665c3d9d4","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.4.0.tgz"}},"1.3.9":{"_upm":{"changelog":"- By using the editor command line new argument `-randomOrderSeed x` you can run the tests in a randomized order, where x is an integer different from 0. If a new test is added in the project the random order passing the same seed will be kept, and the new test will be placed in the random list accordigly.\n- Fix for WebGL platform target to close the browser tab when the run is completed. \n- Added TestFileReferences.json to be generated on build step of the player, so can be consumed later by Test runners to enrich data for run part."},"type":"assets","unity":"2019.4","upmCi":{"footprint":"afab85ea939bfda57db27d19b4c56f006adbe470"},"samples":[{"path":"Samples~/1_RunningTest_Project","description":"This exercise will teach you how to set up a simple Unity project with a test assembly and tests.","displayName":"Exercise 1: Running Tests","interactiveImport":true},{"path":"Samples~/1_RunningTest_Project_Solution","description":"This exercise will teach you how to set up a simple Unity project with a test assembly and tests.","displayName":"Exercise 1: Solution","interactiveImport":true},{"path":"Samples~/2_ActArrangeAssert","description":"In this exercise, you will learn about the core unit testing principle of AAA (Arrange, Act, Assert), which will help you structure your unit test.","displayName":"Exercise 2: Arrange, Act, Assert","interactiveImport":true},{"path":"Samples~/2_ActArrangeAssert_Solution","description":"In this exercise, you will learn about the core unit testing principle of AAA (Arrange, Act, Assert), which will help you structure your unit test.","displayName":"Exercise 2: Solution","interactiveImport":true},{"path":"Samples~/3_SemanticTestAssertion","description":"You will be introduced to the Assert.That and related classes.","displayName":"Exercise 3: Semantic Test Assertion","interactiveImport":true},{"path":"Samples~/3_SemanticTestAssertion_Solution","description":"You will be introduced to the Assert.That and related classes.","displayName":"Exercise 3: Solution","interactiveImport":true},{"path":"Samples~/4_CustomComparison","description":"This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.","displayName":"Exercise 4: Custom Comparison","interactiveImport":true},{"path":"Samples~/4_CustomComparison_Solution","description":"This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.","displayName":"Exercise 4: Solution","interactiveImport":true},{"path":"Samples~/5_AssertingLogs","description":"How to test and verify code that logs to the console log.","displayName":"Exercise 5: Asserting Logs","interactiveImport":true},{"path":"Samples~/5_AssertingLogs_Solution","description":"How to test and verify code that logs to the console log.","displayName":"Exercise 5: Solution","interactiveImport":true},{"path":"Samples~/6_SetUpTearDown","description":"In this exercise, you will get practical experience in using the NUnit attributes [SetUp] and [TearDown] in order to reduce code duplication in your tests.","displayName":"Exercise 6: Set Up and Tear Down","interactiveImport":true},{"path":"Samples~/6_SetUpTearDown_Solution","description":"In this exercise, you will get practical experience in using the NUnit attributes [SetUp] and [TearDown] in order to reduce code duplication in your tests.","displayName":"Exercise 6: Solution","interactiveImport":true},{"path":"Samples~/7_PlayModeTests","description":"This exercise introduces the concept of PlayMode tests and will teach you when to use PlayMode tests, how to set up assembly definition for PlayMode tests, and how to run tests in PlayMode.","displayName":"Exercise 7: PlayMode Tests","interactiveImport":true},{"path":"Samples~/7_PlayModeTests_Solution","description":"This exercise introduces the concept of PlayMode tests and will teach you when to use PlayMode tests, how to set up assembly definition for PlayMode tests, and how to run tests in PlayMode.","displayName":"Exercise 7: Solution","interactiveImport":true},{"path":"Samples~/8_PlayModeTests_InPlayer","description":"This section will teach you how to run PlayMode tests in a Standalone player on your machine.","displayName":"Exercise 8: PlayMode Tests in Player","interactiveImport":true},{"path":"Samples~/9_UnityTestAttribute","description":"This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.","displayName":"Exercise 9: UnityTest Attribute","interactiveImport":true},{"path":"Samples~/9_UnityTestAttribute_Solution","description":"This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.","displayName":"Exercise 9: Solution","interactiveImport":true},{"path":"Samples~/10_LongRunningTests","description":"This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.","displayName":"Exercise 10: Long Running Tests","interactiveImport":true},{"path":"Samples~/10_LongRunningTests_Solution","description":"This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.","displayName":"Exercise 10: Solution","interactiveImport":true},{"path":"Samples~/11_SceneBasedTests","description":"In this exercise, you will learn how to test content that is stored in a scene.","displayName":"Exercise 11: Scene Based Tests","interactiveImport":true},{"path":"Samples~/11_SceneBasedTests_Solution","description":"In this exercise, you will learn how to test content that is stored in a scene.","displayName":"Exercise 11: Solution","interactiveImport":true},{"path":"Samples~/12_BuildSetupCleanup","description":"This section will introduce you to the hooks in the test framework for before and after the player build.","displayName":"Exercise 12: Build Setup and Cleanup","interactiveImport":true},{"path":"Samples~/12_BuildSetupCleanup_Solution","description":"This section will introduce you to the hooks in the test framework for before and after the player build.","displayName":"Exercise 12: Solution","interactiveImport":true},{"path":"Samples~/13_DomainReload","description":"In this section, you will learn how to invoke and wait for Domain Reloads.","displayName":"Exercise 13: Domain Reload","interactiveImport":true},{"path":"Samples~/13_DomainReload_Solution","description":"In this section, you will learn how to invoke and wait for Domain Reloads.","displayName":"Exercise 13: Solution","interactiveImport":true},{"path":"Samples~/14_PreserveTestState","description":"This section will cover how to let variables and information in your tests survive domain reloads using serialization.","displayName":"Exercise 14: Preserve Test State","interactiveImport":true},{"path":"Samples~/14_PreserveTestState_Solution","description":"This section will cover how to let variables and information in your tests survive domain reloads using serialization.","displayName":"Exercise 14: Solution","interactiveImport":true},{"path":"Samples~/15_TestCases","description":"This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.","displayName":"Exercise 15: Test Cases","interactiveImport":true},{"path":"Samples~/15_TestCases_Solution","description":"This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.","displayName":"Exercise 15: Solution","interactiveImport":true},{"path":"Samples~/16_CustomAttributes","description":"In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.","displayName":"Exercise 16: Custom Attributes","interactiveImport":true},{"path":"Samples~/16_CustomAttributes_Solution","description":"In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.","displayName":"Exercise 16: Solution","interactiveImport":true},{"path":"Samples~/17_RunningTestsProgrammatically","description":"This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.","displayName":"Exercise 17: Runnings Tests Programmatically","interactiveImport":true},{"path":"Samples~/17_RunningTestsProgrammatically_Solution","description":"This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.","displayName":"Exercise 17: Solution","interactiveImport":true}],"repository":{"url":"https://github.com/Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"5c8a1448cee4d7607be0d60dceb66703b0cfe016"},"unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.3.9"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.test-framework@1.3/manual/index.html","name":"com.unity.test-framework","version":"1.3.9","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"2.0.3","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"1f7ffc2347eb2aa93ce9423198c19665e09b3424","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.3.9.tgz"}},"1.3.8":{"_upm":{"changelog":"- By using the editor command line new argument `-randomOrderSeed x` you can run the tests in a randomized order, where x is an integer different from 0. If a new test is added in the project the random order passing the same seed will be kept, and the new test will be placed in the random list accordigly.\n- Fix for WebGL platform target to close the browser tab when the run is completed. \n- Added TestFileReferences.json to be generated on build step of the player, so can be consumed later by Test runners to enrich data for run part."},"type":"assets","unity":"2019.4","upmCi":{"footprint":"ed15cb758498607c38e671aeced3b36da781b3d0"},"samples":[{"path":"Samples~/1_RunningTest_Project","description":"This exercise will teach you how to set up a simple Unity project with a test assembly and tests.","displayName":"Exercise 1: Running Tests","interactiveImport":true},{"path":"Samples~/1_RunningTest_Project_Solution","description":"This exercise will teach you how to set up a simple Unity project with a test assembly and tests.","displayName":"Exercise 1: Solution","interactiveImport":true},{"path":"Samples~/2_ActArrangeAssert","description":"In this exercise, you will learn about the core unit testing principle of AAA (Arrange, Act, Assert), which will help you structure your unit test.","displayName":"Exercise 2: Arrange, Act, Assert","interactiveImport":true},{"path":"Samples~/2_ActArrangeAssert_Solution","description":"In this exercise, you will learn about the core unit testing principle of AAA (Arrange, Act, Assert), which will help you structure your unit test.","displayName":"Exercise 2: Solution","interactiveImport":true},{"path":"Samples~/3_SemanticTestAssertion","description":"You will be introduced to the Assert.That and related classes.","displayName":"Exercise 3: Semantic Test Assertion","interactiveImport":true},{"path":"Samples~/3_SemanticTestAssertion_Solution","description":"You will be introduced to the Assert.That and related classes.","displayName":"Exercise 3: Solution","interactiveImport":true},{"path":"Samples~/4_CustomComparison","description":"This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.","displayName":"Exercise 4: Custom Comparison","interactiveImport":true},{"path":"Samples~/4_CustomComparison_Solution","description":"This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.","displayName":"Exercise 4: Solution","interactiveImport":true},{"path":"Samples~/5_AssertingLogs","description":"How to test and verify code that logs to the console log.","displayName":"Exercise 5: Asserting Logs","interactiveImport":true},{"path":"Samples~/5_AssertingLogs_Solution","description":"How to test and verify code that logs to the console log.","displayName":"Exercise 5: Solution","interactiveImport":true},{"path":"Samples~/6_SetUpTearDown","description":"In this exercise, you will get practical experience in using the NUnit attributes [SetUp] and [TearDown] in order to reduce code duplication in your tests.","displayName":"Exercise 6: Set Up and Tear Down","interactiveImport":true},{"path":"Samples~/6_SetUpTearDown_Solution","description":"In this exercise, you will get practical experience in using the NUnit attributes [SetUp] and [TearDown] in order to reduce code duplication in your tests.","displayName":"Exercise 6: Solution","interactiveImport":true},{"path":"Samples~/7_PlayModeTests","description":"This exercise introduces the concept of PlayMode tests and will teach you when to use PlayMode tests, how to set up assembly definition for PlayMode tests, and how to run tests in PlayMode.","displayName":"Exercise 7: PlayMode Tests","interactiveImport":true},{"path":"Samples~/7_PlayModeTests_Solution","description":"This exercise introduces the concept of PlayMode tests and will teach you when to use PlayMode tests, how to set up assembly definition for PlayMode tests, and how to run tests in PlayMode.","displayName":"Exercise 7: Solution","interactiveImport":true},{"path":"Samples~/8_PlayModeTests_InPlayer","description":"This section will teach you how to run PlayMode tests in a Standalone player on your machine.","displayName":"Exercise 8: PlayMode Tests in Player","interactiveImport":true},{"path":"Samples~/9_UnityTestAttribute","description":"This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.","displayName":"Exercise 9: UnityTest Attribute","interactiveImport":true},{"path":"Samples~/9_UnityTestAttribute_Solution","description":"This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.","displayName":"Exercise 9: Solution","interactiveImport":true},{"path":"Samples~/10_LongRunningTests","description":"This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.","displayName":"Exercise 10: Long Running Tests","interactiveImport":true},{"path":"Samples~/10_LongRunningTests_Solution","description":"This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.","displayName":"Exercise 10: Solution","interactiveImport":true},{"path":"Samples~/11_SceneBasedTests","description":"In this exercise, you will learn how to test content that is stored in a scene.","displayName":"Exercise 11: Scene Based Tests","interactiveImport":true},{"path":"Samples~/11_SceneBasedTests_Solution","description":"In this exercise, you will learn how to test content that is stored in a scene.","displayName":"Exercise 11: Solution","interactiveImport":true},{"path":"Samples~/12_BuildSetupCleanup","description":"This section will introduce you to the hooks in the test framework for before and after the player build.","displayName":"Exercise 12: Build Setup and Cleanup","interactiveImport":true},{"path":"Samples~/12_BuildSetupCleanup_Solution","description":"This section will introduce you to the hooks in the test framework for before and after the player build.","displayName":"Exercise 12: Solution","interactiveImport":true},{"path":"Samples~/13_DomainReload","description":"In this section, you will learn how to invoke and wait for Domain Reloads.","displayName":"Exercise 13: Domain Reload","interactiveImport":true},{"path":"Samples~/13_DomainReload_Solution","description":"In this section, you will learn how to invoke and wait for Domain Reloads.","displayName":"Exercise 13: Solution","interactiveImport":true},{"path":"Samples~/14_PreserveTestState","description":"This section will cover how to let variables and information in your tests survive domain reloads using serialization.","displayName":"Exercise 14: Preserve Test State","interactiveImport":true},{"path":"Samples~/14_PreserveTestState_Solution","description":"This section will cover how to let variables and information in your tests survive domain reloads using serialization.","displayName":"Exercise 14: Solution","interactiveImport":true},{"path":"Samples~/15_TestCases","description":"This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.","displayName":"Exercise 15: Test Cases","interactiveImport":true},{"path":"Samples~/15_TestCases_Solution","description":"This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.","displayName":"Exercise 15: Solution","interactiveImport":true},{"path":"Samples~/16_CustomAttributes","description":"In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.","displayName":"Exercise 16: Custom Attributes","interactiveImport":true},{"path":"Samples~/16_CustomAttributes_Solution","description":"In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.","displayName":"Exercise 16: Solution","interactiveImport":true},{"path":"Samples~/17_RunningTestsProgrammatically","description":"This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.","displayName":"Exercise 17: Runnings Tests Programmatically","interactiveImport":true},{"path":"Samples~/17_RunningTestsProgrammatically_Solution","description":"This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.","displayName":"Exercise 17: Solution","interactiveImport":true}],"repository":{"url":"https://github.com/Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"3c71367fe3a376f1a5a60b775ad2d3fb862af3ac"},"unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.3.8"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.test-framework@1.3/manual/index.html","name":"com.unity.test-framework","version":"1.3.8","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"2.0.3","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"97da96fa836e6c0efc8b13605d3753b94d8b6fac","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.3.8.tgz"}},"1.3.7":{"_upm":{"changelog":"- By using the editor command line new argument `-randomOrderSeed x` you can run the tests in a randomized order, where x is an integer different from 0. If a new test is added in the project the random order passing the same seed will be kept, and the new test will be placed in the random list accordigly.\n- Fix for WebGL platform target to close the browser tab when the run is completed. \n- Added TestFileReferences.json to be generated on build step of the player, so can be consumed later by Test runners to enrich data for run part."},"type":"assets","unity":"2019.4","upmCi":{"footprint":"e6b1b0804206abba3e0191e474d5790c4781e4b7"},"samples":[{"path":"Samples~/1_RunningTest_Project","description":"This exercise will teach you how to set up a simple Unity project with a test assembly and tests.","displayName":"Exercise 1: Running Tests","interactiveImport":true},{"path":"Samples~/1_RunningTest_Project_Solution","description":"This exercise will teach you how to set up a simple Unity project with a test assembly and tests.","displayName":"Exercise 1: Solution","interactiveImport":true},{"path":"Samples~/2_ActArrangeAssert","description":"In this exercise, you will learn about the core unit testing principle of AAA (Arrange, Act, Assert), which will help you structure your unit test.","displayName":"Exercise 2: Arrange, Act, Assert","interactiveImport":true},{"path":"Samples~/2_ActArrangeAssert_Solution","description":"In this exercise, you will learn about the core unit testing principle of AAA (Arrange, Act, Assert), which will help you structure your unit test.","displayName":"Exercise 2: Solution","interactiveImport":true},{"path":"Samples~/3_SemanticTestAssertion","description":"You will be introduced to the Assert.That and related classes.","displayName":"Exercise 3: Semantic Test Assertion","interactiveImport":true},{"path":"Samples~/3_SemanticTestAssertion_Solution","description":"You will be introduced to the Assert.That and related classes.","displayName":"Exercise 3: Solution","interactiveImport":true},{"path":"Samples~/4_CustomComparison","description":"This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.","displayName":"Exercise 4: Custom Comparison","interactiveImport":true},{"path":"Samples~/4_CustomComparison_Solution","description":"This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.","displayName":"Exercise 4: Solution","interactiveImport":true},{"path":"Samples~/5_AssertingLogs","description":"How to test and verify code that logs to the console log.","displayName":"Exercise 5: Asserting Logs","interactiveImport":true},{"path":"Samples~/5_AssertingLogs_Solution","description":"How to test and verify code that logs to the console log.","displayName":"Exercise 5: Solution","interactiveImport":true},{"path":"Samples~/6_SetUpTearDown","description":"In this exercise, you will get practical experience in using the NUnit attributes [SetUp] and [TearDown] in order to reduce code duplication in your tests.","displayName":"Exercise 6: Set Up and Tear Down","interactiveImport":true},{"path":"Samples~/6_SetUpTearDown_Solution","description":"In this exercise, you will get practical experience in using the NUnit attributes [SetUp] and [TearDown] in order to reduce code duplication in your tests.","displayName":"Exercise 6: Solution","interactiveImport":true},{"path":"Samples~/7_PlayModeTests","description":"This exercise introduces the concept of PlayMode tests and will teach you when to use PlayMode tests, how to set up assembly definition for PlayMode tests, and how to run tests in PlayMode.","displayName":"Exercise 7: PlayMode Tests","interactiveImport":true},{"path":"Samples~/7_PlayModeTests_Solution","description":"This exercise introduces the concept of PlayMode tests and will teach you when to use PlayMode tests, how to set up assembly definition for PlayMode tests, and how to run tests in PlayMode.","displayName":"Exercise 7: Solution","interactiveImport":true},{"path":"Samples~/8_PlayModeTests_InPlayer","description":"This section will teach you how to run PlayMode tests in a Standalone player on your machine.","displayName":"Exercise 8: PlayMode Tests in Player","interactiveImport":true},{"path":"Samples~/9_UnityTestAttribute","description":"This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.","displayName":"Exercise 9: UnityTest Attribute","interactiveImport":true},{"path":"Samples~/9_UnityTestAttribute_Solution","description":"This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.","displayName":"Exercise 9: Solution","interactiveImport":true},{"path":"Samples~/10_LongRunningTests","description":"This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.","displayName":"Exercise 10: Long Running Tests","interactiveImport":true},{"path":"Samples~/10_LongRunningTests_Solution","description":"This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.","displayName":"Exercise 10: Solution","interactiveImport":true},{"path":"Samples~/11_SceneBasedTests","description":"In this exercise, you will learn how to test content that is stored in a scene.","displayName":"Exercise 11: Scene Based Tests","interactiveImport":true},{"path":"Samples~/11_SceneBasedTests_Solution","description":"In this exercise, you will learn how to test content that is stored in a scene.","displayName":"Exercise 11: Solution","interactiveImport":true},{"path":"Samples~/12_BuildSetupCleanup","description":"This section will introduce you to the hooks in the test framework for before and after the player build.","displayName":"Exercise 12: Build Setup and Cleanup","interactiveImport":true},{"path":"Samples~/12_BuildSetupCleanup_Solution","description":"This section will introduce you to the hooks in the test framework for before and after the player build.","displayName":"Exercise 12: Solution","interactiveImport":true},{"path":"Samples~/13_DomainReload","description":"In this section, you will learn how to invoke and wait for Domain Reloads.","displayName":"Exercise 13: Domain Reload","interactiveImport":true},{"path":"Samples~/13_DomainReload_Solution","description":"In this section, you will learn how to invoke and wait for Domain Reloads.","displayName":"Exercise 13: Solution","interactiveImport":true},{"path":"Samples~/14_PreserveTestState","description":"This section will cover how to let variables and information in your tests survive domain reloads using serialization.","displayName":"Exercise 14: Preserve Test State","interactiveImport":true},{"path":"Samples~/14_PreserveTestState_Solution","description":"This section will cover how to let variables and information in your tests survive domain reloads using serialization.","displayName":"Exercise 14: Solution","interactiveImport":true},{"path":"Samples~/15_TestCases","description":"This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.","displayName":"Exercise 15: Test Cases","interactiveImport":true},{"path":"Samples~/15_TestCases_Solution","description":"This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.","displayName":"Exercise 15: Solution","interactiveImport":true},{"path":"Samples~/16_CustomAttributes","description":"In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.","displayName":"Exercise 16: Custom Attributes","interactiveImport":true},{"path":"Samples~/16_CustomAttributes_Solution","description":"In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.","displayName":"Exercise 16: Solution","interactiveImport":true},{"path":"Samples~/17_RunningTestsProgrammatically","description":"This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.","displayName":"Exercise 17: Runnings Tests Programmatically","interactiveImport":true},{"path":"Samples~/17_RunningTestsProgrammatically_Solution","description":"This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.","displayName":"Exercise 17: Solution","interactiveImport":true}],"repository":{"url":"https://github.com/Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"468e2ea5f976e8dee4bb02a4e9714155745c941e"},"unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.3.7"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.test-framework@1.3/manual/index.html","name":"com.unity.test-framework","version":"1.3.7","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"2.0.3","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"ac0842ac8b095a62cd7e34b58e316f4085a35d79","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.3.7.tgz"}},"1.3.5":{"_upm":{"changelog":"- It’s now possible to retry and repeat tests on test level, meaning as soon as the test finishs running the first iteration, we now retry or repeat it.  Command line arguments to pass to the Editor:\n  -  `-repeat x` runs the test x amount of times or until it fails. It is useful for testing unstable tests \n  -  `-retry x` if a test fails, run that test x amount of times or until it succeeds.\n- Fixed various documentation bugs reported via the docs user feedback system.\n- Fixed TestMode not being set correctly on root level of test tree (DSTP-674).\n- It's now possible to select browser for running WebGL player tests in player settings. (DSTR-811)"},"type":"asset","unity":"2019.4","upmCi":{"footprint":"857b4203fa1a5571607c8e67ff686c16c06c0225"},"samples":[{"path":"Samples~/1_RunningTest_Project","description":"This exercise will teach you how to set up a simple Unity project with a test assembly and tests.","displayName":"Exercise 1: Running Tests","interactiveImport":true},{"path":"Samples~/1_RunningTest_Project_Solution","description":"This exercise will teach you how to set up a simple Unity project with a test assembly and tests.","displayName":"Exercise 1: Solution","interactiveImport":true},{"path":"Samples~/2_ActArrangeAssert","description":"In this exercise, you will learn about the core unit testing principle of AAA (Arrange, Act, Assert), which will help you structure your unit test.","displayName":"Exercise 2: Arrange, Act, Assert","interactiveImport":true},{"path":"Samples~/2_ActArrangeAssert_Solution","description":"In this exercise, you will learn about the core unit testing principle of AAA (Arrange, Act, Assert), which will help you structure your unit test.","displayName":"Exercise 2: Solution","interactiveImport":true},{"path":"Samples~/3_SemanticTestAssertion","description":"You will be introduced to the Assert.That and related classes.","displayName":"Exercise 3: Semantic Test Assertion","interactiveImport":true},{"path":"Samples~/3_SemanticTestAssertion_Solution","description":"You will be introduced to the Assert.That and related classes.","displayName":"Exercise 3: Solution","interactiveImport":true},{"path":"Samples~/4_CustomComparison","description":"This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.","displayName":"Exercise 4: Custom Comparison","interactiveImport":true},{"path":"Samples~/4_CustomComparison_Solution","description":"This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.","displayName":"Exercise 4: Solution","interactiveImport":true},{"path":"Samples~/5_AssertingLogs","description":"How to test and verify code that logs to the console log.","displayName":"Exercise 5: Asserting Logs","interactiveImport":true},{"path":"Samples~/5_AssertingLogs_Solution","description":"How to test and verify code that logs to the console log.","displayName":"Exercise 5: Solution","interactiveImport":true},{"path":"Samples~/6_SetUpTearDown","description":"In this exercise, you will get practical experience in using the NUnit attributes [SetUp] and [TearDown] in order to reduce code duplication in your tests.","displayName":"Exercise 6: Set Up and Tear Down","interactiveImport":true},{"path":"Samples~/6_SetUpTearDown_Solution","description":"In this exercise, you will get practical experience in using the NUnit attributes [SetUp] and [TearDown] in order to reduce code duplication in your tests.","displayName":"Exercise 6: Solution","interactiveImport":true},{"path":"Samples~/7_PlayModeTests","description":"This exercise introduces the concept of PlayMode tests and will teach you when to use PlayMode tests, how to set up assembly definition for PlayMode tests, and how to run tests in PlayMode.","displayName":"Exercise 7: PlayMode Tests","interactiveImport":true},{"path":"Samples~/7_PlayModeTests_Solution","description":"This exercise introduces the concept of PlayMode tests and will teach you when to use PlayMode tests, how to set up assembly definition for PlayMode tests, and how to run tests in PlayMode.","displayName":"Exercise 7: Solution","interactiveImport":true},{"path":"Samples~/8_PlayModeTests_InPlayer","description":"This section will teach you how to run PlayMode tests in a Standalone player on your machine.","displayName":"Exercise 8: PlayMode Tests in Player","interactiveImport":true},{"path":"Samples~/9_UnityTestAttribute","description":"This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.","displayName":"Exercise 9: UnityTest Attribute","interactiveImport":true},{"path":"Samples~/9_UnityTestAttribute_Solution","description":"This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.","displayName":"Exercise 9: Solution","interactiveImport":true},{"path":"Samples~/10_LongRunningTests","description":"This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.","displayName":"Exercise 10: Long Running Tests","interactiveImport":true},{"path":"Samples~/10_LongRunningTests_Solution","description":"This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.","displayName":"Exercise 10: Solution","interactiveImport":true},{"path":"Samples~/11_SceneBasedTests","description":"In this exercise, you will learn how to test content that is stored in a scene.","displayName":"Exercise 11: Scene Based Tests","interactiveImport":true},{"path":"Samples~/11_SceneBasedTests_Solution","description":"In this exercise, you will learn how to test content that is stored in a scene.","displayName":"Exercise 11: Solution","interactiveImport":true},{"path":"Samples~/12_BuildSetupCleanup","description":"This section will introduce you to the hooks in the test framework for before and after the player build.","displayName":"Exercise 12: Build Setup and Cleanup","interactiveImport":true},{"path":"Samples~/12_BuildSetupCleanup_Solution","description":"This section will introduce you to the hooks in the test framework for before and after the player build.","displayName":"Exercise 12: Solution","interactiveImport":true},{"path":"Samples~/13_DomainReload","description":"In this section, you will learn how to invoke and wait for Domain Reloads.","displayName":"Exercise 13: Domain Reload","interactiveImport":true},{"path":"Samples~/13_DomainReload_Solution","description":"In this section, you will learn how to invoke and wait for Domain Reloads.","displayName":"Exercise 13: Solution","interactiveImport":true},{"path":"Samples~/14_PreserveTestState","description":"This section will cover how to let variables and information in your tests survive domain reloads using serialization.","displayName":"Exercise 14: Preserve Test State","interactiveImport":true},{"path":"Samples~/14_PreserveTestState_Solution","description":"This section will cover how to let variables and information in your tests survive domain reloads using serialization.","displayName":"Exercise 14: Solution","interactiveImport":true},{"path":"Samples~/15_TestCases","description":"This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.","displayName":"Exercise 15: Test Cases","interactiveImport":true},{"path":"Samples~/15_TestCases_Solution","description":"This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.","displayName":"Exercise 15: Solution","interactiveImport":true},{"path":"Samples~/16_CustomAttributes","description":"In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.","displayName":"Exercise 16: Custom Attributes","interactiveImport":true},{"path":"Samples~/16_CustomAttributes_Solution","description":"In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.","displayName":"Exercise 16: Solution","interactiveImport":true},{"path":"Samples~/17_RunningTestsProgrammatically","description":"This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.","displayName":"Exercise 17: Runnings Tests Programmatically","interactiveImport":true},{"path":"Samples~/17_RunningTestsProgrammatically_Solution","description":"This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.","displayName":"Exercise 17: Solution","interactiveImport":true}],"repository":{"url":"https://github.com/Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"23b45c6f59354f57ae7eb59050dcba0fe20a0727"},"unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.3.5"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.test-framework@1.3/manual/index.html","name":"com.unity.test-framework","version":"1.3.5","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"2.0.3","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"ab29719aa0164ec935498d5e22fc4aceb6aee76c","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.3.5.tgz"}},"1.3.4":{"_upm":{"changelog":"- Fixes output message concurrency issue with async Setup.\n- Fixed multiple issues where tests would not time out, when running longer than the default timeout or the timeout defined in a TimeoutAttribute (DSTR-607).  \n- Added `UNITY_TEST_FRAMEWORK` define constraint to filter out test framework assemblies from normal platform and asset bundle builds. (DSTR-791)\n- Ensured that all playmode tests have a disabled splashscreen and unity logo by default if Unity license permits such action.\n- Added strictDomainReload feature to enable cheching for pending domain reloads/compilations at the end of managed tests (DSTR-793)."},"type":"asset","unity":"2019.4","upmCi":{"footprint":"59daf8ad111b3bd2a7327373953ec25fe393a752"},"samples":[{"path":"Samples~/1_RunningTest_Project","description":"This exercise will teach you how to set up a simple Unity project with a test assembly and tests.","displayName":"Exercise 1: Running Tests","interactiveImport":true},{"path":"Samples~/1_RunningTest_Project_Solution","description":"This exercise will teach you how to set up a simple Unity project with a test assembly and tests.","displayName":"Exercise 1: Solution","interactiveImport":true},{"path":"Samples~/2_ActArrangeAssert","description":"In this exercise, you will learn about the core unit testing principle of AAA (Arrange, Act, Assert), which will help you structure your unit test.","displayName":"Exercise 2: Arrange, Act, Assert","interactiveImport":true},{"path":"Samples~/2_ActArrangeAssert_Solution","description":"In this exercise, you will learn about the core unit testing principle of AAA (Arrange, Act, Assert), which will help you structure your unit test.","displayName":"Exercise 2: Solution","interactiveImport":true},{"path":"Samples~/3_SemanticTestAssertion","description":"You will be introduced to the Assert.That and related classes.","displayName":"Exercise 3: Semantic Test Assertion","interactiveImport":true},{"path":"Samples~/3_SemanticTestAssertion_Solution","description":"You will be introduced to the Assert.That and related classes.","displayName":"Exercise 3: Solution","interactiveImport":true},{"path":"Samples~/4_CustomComparison","description":"This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.","displayName":"Exercise 4: Custom Comparison","interactiveImport":true},{"path":"Samples~/4_CustomComparison_Solution","description":"This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.","displayName":"Exercise 4: Solution","interactiveImport":true},{"path":"Samples~/5_AssertingLogs","description":"How to test and verify code that logs to the console log.","displayName":"Exercise 5: Asserting Logs","interactiveImport":true},{"path":"Samples~/5_AssertingLogs_Solution","description":"How to test and verify code that logs to the console log.","displayName":"Exercise 5: Solution","interactiveImport":true},{"path":"Samples~/6_SetUpTearDown","description":"In this exercise, you will get practical experience in using the NUnit attributes [SetUp] and [TearDown] in order to reduce code duplication in your tests.","displayName":"Exercise 6: Set Up and Tear Down","interactiveImport":true},{"path":"Samples~/6_SetUpTearDown_Solution","description":"In this exercise, you will get practical experience in using the NUnit attributes [SetUp] and [TearDown] in order to reduce code duplication in your tests.","displayName":"Exercise 6: Solution","interactiveImport":true},{"path":"Samples~/7_PlayModeTests","description":"This exercise introduces the concept of PlayMode tests and will teach you when to use PlayMode tests, how to set up assembly definition for PlayMode tests, and how to run tests in PlayMode.","displayName":"Exercise 7: PlayMode Tests","interactiveImport":true},{"path":"Samples~/7_PlayModeTests_Solution","description":"This exercise introduces the concept of PlayMode tests and will teach you when to use PlayMode tests, how to set up assembly definition for PlayMode tests, and how to run tests in PlayMode.","displayName":"Exercise 7: Solution","interactiveImport":true},{"path":"Samples~/8_PlayModeTests_InPlayer","description":"This section will teach you how to run PlayMode tests in a Standalone player on your machine.","displayName":"Exercise 8: PlayMode Tests in Player","interactiveImport":true},{"path":"Samples~/9_UnityTestAttribute","description":"This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.","displayName":"Exercise 9: UnityTest Attribute","interactiveImport":true},{"path":"Samples~/9_UnityTestAttribute_Solution","description":"This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.","displayName":"Exercise 9: Solution","interactiveImport":true},{"path":"Samples~/10_LongRunningTests","description":"This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.","displayName":"Exercise 10: Long Running Tests","interactiveImport":true},{"path":"Samples~/10_LongRunningTests_Solution","description":"This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.","displayName":"Exercise 10: Solution","interactiveImport":true},{"path":"Samples~/11_SceneBasedTests","description":"In this exercise, you will learn how to test content that is stored in a scene.","displayName":"Exercise 11: Scene Based Tests","interactiveImport":true},{"path":"Samples~/11_SceneBasedTests_Solution","description":"In this exercise, you will learn how to test content that is stored in a scene.","displayName":"Exercise 11: Solution","interactiveImport":true},{"path":"Samples~/12_BuildSetupCleanup","description":"This section will introduce you to the hooks in the test framework for before and after the player build.","displayName":"Exercise 12: Build Setup and Cleanup","interactiveImport":true},{"path":"Samples~/12_BuildSetupCleanup_Solution","description":"This section will introduce you to the hooks in the test framework for before and after the player build.","displayName":"Exercise 12: Solution","interactiveImport":true},{"path":"Samples~/13_DomainReload","description":"In this section, you will learn how to invoke and wait for Domain Reloads.","displayName":"Exercise 13: Domain Reload","interactiveImport":true},{"path":"Samples~/13_DomainReload_Solution","description":"In this section, you will learn how to invoke and wait for Domain Reloads.","displayName":"Exercise 13: Solution","interactiveImport":true},{"path":"Samples~/14_PreserveTestState","description":"This section will cover how to let variables and information in your tests survive domain reloads using serialization.","displayName":"Exercise 14: Preserve Test State","interactiveImport":true},{"path":"Samples~/14_PreserveTestState_Solution","description":"This section will cover how to let variables and information in your tests survive domain reloads using serialization.","displayName":"Exercise 14: Solution","interactiveImport":true},{"path":"Samples~/15_TestCases","description":"This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.","displayName":"Exercise 15: Test Cases","interactiveImport":true},{"path":"Samples~/15_TestCases_Solution","description":"This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.","displayName":"Exercise 15: Solution","interactiveImport":true},{"path":"Samples~/16_CustomAttributes","description":"In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.","displayName":"Exercise 16: Custom Attributes","interactiveImport":true},{"path":"Samples~/16_CustomAttributes_Solution","description":"In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.","displayName":"Exercise 16: Solution","interactiveImport":true},{"path":"Samples~/17_RunningTestsProgrammatically","description":"This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.","displayName":"Exercise 17: Runnings Tests Programmatically","interactiveImport":true},{"path":"Samples~/17_RunningTestsProgrammatically_Solution","description":"This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.","displayName":"Exercise 17: Solution","interactiveImport":true}],"repository":{"url":"https://github.com/Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"7b98793495c528cc4a6101f351557d3ae7f0da53"},"unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.3.4"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.test-framework@1.3/manual/index.html","name":"com.unity.test-framework","version":"1.3.4","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"2.0.3","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"38208d1f35499461f9d94b487c8d92955f502ab9","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.3.4.tgz"}},"1.3.3":{"_upm":{"changelog":"- Fixes an issue where a test body would be skipped under certain conditions regarding domain reload.\n- Fixed an issue where the \"uncategorized\" category filter would not apply correctly to parameterized tests with a category in the fixture (DSTR-700).\n- Ensured that all samples can be loaded at once without assembly name collisions."},"type":"asset","unity":"2019.4","upmCi":{"footprint":"81e82331d351f4a2202e6290f9aa0322c50c0229"},"samples":[{"path":"Samples~/1_RunningTest_Project","description":"This exercise will teach you how to set up a simple Unity project with a test assembly and tests.","displayName":"Exercise 1: Running Tests","interactiveImport":true},{"path":"Samples~/1_RunningTest_Project_Solution","description":"This exercise will teach you how to set up a simple Unity project with a test assembly and tests.","displayName":"Exercise 1: Solution","interactiveImport":true},{"path":"Samples~/2_ActArrangeAssert","description":"In this exercise, you will learn about the core unit testing principle of AAA (Arrange, Act, Assert), which will help you structure your unit test.","displayName":"Exercise 2: Arrange, Act, Assert","interactiveImport":true},{"path":"Samples~/2_ActArrangeAssert_Solution","description":"In this exercise, you will learn about the core unit testing principle of AAA (Arrange, Act, Assert), which will help you structure your unit test.","displayName":"Exercise 2: Solution","interactiveImport":true},{"path":"Samples~/3_SemanticTestAssertion","description":"You will be introduced to the Assert.That and related classes.","displayName":"Exercise 3: Semantic Test Assertion","interactiveImport":true},{"path":"Samples~/3_SemanticTestAssertion_Solution","description":"You will be introduced to the Assert.That and related classes.","displayName":"Exercise 3: Solution","interactiveImport":true},{"path":"Samples~/4_CustomComparison","description":"This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.","displayName":"Exercise 4: Custom Comparison","interactiveImport":true},{"path":"Samples~/4_CustomComparison_Solution","description":"This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.","displayName":"Exercise 4: Solution","interactiveImport":true},{"path":"Samples~/5_AssertingLogs","description":"How to test and verify code that logs to the console log.","displayName":"Exercise 5: Asserting Logs","interactiveImport":true},{"path":"Samples~/5_AssertingLogs_Solution","description":"How to test and verify code that logs to the console log.","displayName":"Exercise 5: Solution","interactiveImport":true},{"path":"Samples~/6_SetUpTearDown","description":"In this exercise, you will get practical experience in using the NUnit attributes [SetUp] and [TearDown] in order to reduce code duplication in your tests.","displayName":"Exercise 6: Set Up and Tear Down","interactiveImport":true},{"path":"Samples~/6_SetUpTearDown_Solution","description":"In this exercise, you will get practical experience in using the NUnit attributes [SetUp] and [TearDown] in order to reduce code duplication in your tests.","displayName":"Exercise 6: Solution","interactiveImport":true},{"path":"Samples~/7_PlayModeTests","description":"This exercise introduces the concept of PlayMode tests and will teach you when to use PlayMode tests, how to set up assembly definition for PlayMode tests, and how to run tests in PlayMode.","displayName":"Exercise 7: PlayMode Tests","interactiveImport":true},{"path":"Samples~/7_PlayModeTests_Solution","description":"This exercise introduces the concept of PlayMode tests and will teach you when to use PlayMode tests, how to set up assembly definition for PlayMode tests, and how to run tests in PlayMode.","displayName":"Exercise 7: Solution","interactiveImport":true},{"path":"Samples~/8_PlayModeTests_InPlayer","description":"This section will teach you how to run PlayMode tests in a Standalone player on your machine.","displayName":"Exercise 8: PlayMode Tests in Player","interactiveImport":true},{"path":"Samples~/9_UnityTestAttribute","description":"This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.","displayName":"Exercise 9: UnityTest Attribute","interactiveImport":true},{"path":"Samples~/9_UnityTestAttribute_Solution","description":"This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.","displayName":"Exercise 9: Solution","interactiveImport":true},{"path":"Samples~/10_LongRunningTests","description":"This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.","displayName":"Exercise 10: Long Running Tests","interactiveImport":true},{"path":"Samples~/10_LongRunningTests_Solution","description":"This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.","displayName":"Exercise 10: Solution","interactiveImport":true},{"path":"Samples~/11_SceneBasedTests","description":"In this exercise, you will learn how to test content that is stored in a scene.","displayName":"Exercise 11: Scene Based Tests","interactiveImport":true},{"path":"Samples~/11_SceneBasedTests_Solution","description":"In this exercise, you will learn how to test content that is stored in a scene.","displayName":"Exercise 11: Solution","interactiveImport":true},{"path":"Samples~/12_BuildSetupCleanup","description":"This section will introduce you to the hooks in the test framework for before and after the player build.","displayName":"Exercise 12: Build Setup and Cleanup","interactiveImport":true},{"path":"Samples~/12_BuildSetupCleanup_Solution","description":"This section will introduce you to the hooks in the test framework for before and after the player build.","displayName":"Exercise 12: Solution","interactiveImport":true},{"path":"Samples~/13_DomainReload","description":"In this section, you will learn how to invoke and wait for Domain Reloads.","displayName":"Exercise 13: Domain Reload","interactiveImport":true},{"path":"Samples~/13_DomainReload_Solution","description":"In this section, you will learn how to invoke and wait for Domain Reloads.","displayName":"Exercise 13: Solution","interactiveImport":true},{"path":"Samples~/14_PreserveTestState","description":"This section will cover how to let variables and information in your tests survive domain reloads using serialization.","displayName":"Exercise 14: Preserve Test State","interactiveImport":true},{"path":"Samples~/14_PreserveTestState_Solution","description":"This section will cover how to let variables and information in your tests survive domain reloads using serialization.","displayName":"Exercise 14: Solution","interactiveImport":true},{"path":"Samples~/15_TestCases","description":"This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.","displayName":"Exercise 15: Test Cases","interactiveImport":true},{"path":"Samples~/15_TestCases_Solution","description":"This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.","displayName":"Exercise 15: Solution","interactiveImport":true},{"path":"Samples~/16_CustomAttributes","description":"In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.","displayName":"Exercise 16: Custom Attributes","interactiveImport":true},{"path":"Samples~/16_CustomAttributes_Solution","description":"In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.","displayName":"Exercise 16: Solution","interactiveImport":true},{"path":"Samples~/17_RunningTestsProgrammatically","description":"This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.","displayName":"Exercise 17: Runnings Tests Programmatically","interactiveImport":true},{"path":"Samples~/17_RunningTestsProgrammatically_Solution","description":"This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.","displayName":"Exercise 17: Solution","interactiveImport":true}],"repository":{"url":"https://github.com/Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"d9af9941435342be1b52a29352c9cf4853936bba"},"unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.3.3"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.test-framework@1.3/manual/index.html","name":"com.unity.test-framework","version":"1.3.3","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"2.0.3","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"909469361b79f343b2715c574715f1c4010b4c7c","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.3.3.tgz"}},"1.3.2":{"type":"asset","unity":"2019.4","upmCi":{"footprint":"b9c9e756fd9bdbd0a54b5dcd168c46c6316f7aaf"},"samples":[{"path":"Samples~/1_RunningTest_Project","description":"This exercise will teach you how to set up a simple Unity project with a test assembly and tests.","displayName":"Exercise 1: Running Tests","interactiveImport":true},{"path":"Samples~/1_RunningTest_Project_Solution","description":"This exercise will teach you how to set up a simple Unity project with a test assembly and tests.","displayName":"Exercise 1: Solution","interactiveImport":true},{"path":"Samples~/2_ActArrangeAssert","description":"In this exercise, you will learn about the core unit testing principle of AAA (Arrange, Act, Assert), which will help you structure your unit test.","displayName":"Exercise 2: Arrange, Act, Assert","interactiveImport":true},{"path":"Samples~/2_ActArrangeAssert_Solution","description":"In this exercise, you will learn about the core unit testing principle of AAA (Arrange, Act, Assert), which will help you structure your unit test.","displayName":"Exercise 2: Solution","interactiveImport":true},{"path":"Samples~/3_SemanticTestAssertion","description":"You will be introduced to the Assert.That and related classes.","displayName":"Exercise 3: Semantic Test Assertion","interactiveImport":true},{"path":"Samples~/3_SemanticTestAssertion_Solution","description":"You will be introduced to the Assert.That and related classes.","displayName":"Exercise 3: Solution","interactiveImport":true},{"path":"Samples~/4_CustomComparison","description":"This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.","displayName":"Exercise 4: Custom Comparison","interactiveImport":true},{"path":"Samples~/4_CustomComparison_Solution","description":"This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.","displayName":"Exercise 4: Solution","interactiveImport":true},{"path":"Samples~/5_AssertingLogs","description":"How to test and verify code that logs to the console log.","displayName":"Exercise 5: Asserting Logs","interactiveImport":true},{"path":"Samples~/5_AssertingLogs_Solution","description":"How to test and verify code that logs to the console log.","displayName":"Exercise 5: Solution","interactiveImport":true},{"path":"Samples~/6_SetUpTearDown","description":"In this exercise, you will get practical experience in using the NUnit attributes [SetUp] and [TearDown] in order to reduce code duplication in your tests.","displayName":"Exercise 6: Set Up and Tear Down","interactiveImport":true},{"path":"Samples~/6_SetUpTearDown_Solution","description":"In this exercise, you will get practical experience in using the NUnit attributes [SetUp] and [TearDown] in order to reduce code duplication in your tests.","displayName":"Exercise 6: Solution","interactiveImport":true},{"path":"Samples~/7_PlayModeTests","description":"This exercise introduces the concept of PlayMode tests and will teach you when to use PlayMode tests, how to set up assembly definition for PlayMode tests, and how to run tests in PlayMode.","displayName":"Exercise 7: PlayMode Tests","interactiveImport":true},{"path":"Samples~/7_PlayModeTests_Solution","description":"This exercise introduces the concept of PlayMode tests and will teach you when to use PlayMode tests, how to set up assembly definition for PlayMode tests, and how to run tests in PlayMode.","displayName":"Exercise 7: Solution","interactiveImport":true},{"path":"Samples~/8_PlayModeTests_InPlayer","description":"This section will teach you how to run PlayMode tests in a Standalone player on your machine.","displayName":"Exercise 8: PlayMode Tests in Player","interactiveImport":true},{"path":"Samples~/9_UnityTestAttribute","description":"This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.","displayName":"Exercise 9: UnityTest Attribute","interactiveImport":true},{"path":"Samples~/9_UnityTestAttribute_Solution","description":"This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.","displayName":"Exercise 9: Solution","interactiveImport":true},{"path":"Samples~/10_LongRunningTests","description":"This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.","displayName":"Exercise 10: Long Running Tests","interactiveImport":true},{"path":"Samples~/10_LongRunningTests_Solution","description":"This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.","displayName":"Exercise 10: Solution","interactiveImport":true},{"path":"Samples~/11_SceneBasedTests","description":"In this exercise, you will learn how to test content that is stored in a scene.","displayName":"Exercise 11: Scene Based Tests","interactiveImport":true},{"path":"Samples~/11_SceneBasedTests_Solution","description":"In this exercise, you will learn how to test content that is stored in a scene.","displayName":"Exercise 11: Solution","interactiveImport":true},{"path":"Samples~/12_BuildSetupCleanup","description":"This section will introduce you to the hooks in the test framework for before and after the player build.","displayName":"Exercise 12: Build Setup and Cleanup","interactiveImport":true},{"path":"Samples~/12_BuildSetupCleanup_Solution","description":"This section will introduce you to the hooks in the test framework for before and after the player build.","displayName":"Exercise 12: Solution","interactiveImport":true},{"path":"Samples~/13_DomainReload","description":"In this section, you will learn how to invoke and wait for Domain Reloads.","displayName":"Exercise 13: Domain Reload","interactiveImport":true},{"path":"Samples~/13_DomainReload_Solution","description":"In this section, you will learn how to invoke and wait for Domain Reloads.","displayName":"Exercise 13: Solution","interactiveImport":true},{"path":"Samples~/14_PreserveTestState","description":"This section will cover how to let variables and information in your tests survive domain reloads using serialization.","displayName":"Exercise 14: Preserve Test State","interactiveImport":true},{"path":"Samples~/14_PreserveTestState_Solution","description":"This section will cover how to let variables and information in your tests survive domain reloads using serialization.","displayName":"Exercise 14: Solution","interactiveImport":true},{"path":"Samples~/15_TestCases","description":"This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.","displayName":"Exercise 15: Test Cases","interactiveImport":true},{"path":"Samples~/15_TestCases_Solution","description":"This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.","displayName":"Exercise 15: Solution","interactiveImport":true},{"path":"Samples~/16_CustomAttributes","description":"In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.","displayName":"Exercise 16: Custom Attributes","interactiveImport":true},{"path":"Samples~/16_CustomAttributes_Solution","description":"In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.","displayName":"Exercise 16: Solution","interactiveImport":true},{"path":"Samples~/17_RunningTestsProgrammatically","description":"This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.","displayName":"Exercise 17: Runnings Tests Programmatically","interactiveImport":true},{"path":"Samples~/17_RunningTestsProgrammatically_Solution","description":"This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.","displayName":"Exercise 17: Solution","interactiveImport":true}],"repository":{"url":"https://github.com/Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"d5e1b3738bc1e7eaac122eb417f2ede116408a56"},"unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.3.2"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.test-framework@1.3/manual/index.html","name":"com.unity.test-framework","version":"1.3.2","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"2.0.3","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"c6d7cf9542a873ce7ef2fea8798a263488eb636e","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.3.2.tgz"}},"1.3.1":{"type":"asset","unity":"2019.4","upmCi":{"footprint":"061fc4d36557acad932388c4b4909128458ad192"},"samples":[{"path":"Samples~/1_RunningTest_Project","description":"This exercise will teach you how to set up a simple Unity project with a test assembly and tests.","displayName":"Exercise 1: Running Tests","interactiveImport":"true"},{"path":"Samples~/1_RunningTest_Project_Solution","description":"This exercise will teach you how to set up a simple Unity project with a test assembly and tests.","displayName":"Exercise 1: Solution","interactiveImport":"true"},{"path":"Samples~/2_ActArrangeAssert","description":"In this exercise, you will learn about the core unit testing principle of AAA (Arrange, Act, Assert), which will help you structure your unit test.","displayName":"Exercise 2: Arrange, Act, Assert","interactiveImport":"true"},{"path":"Samples~/2_ActArrangeAssert_Solution","description":"In this exercise, you will learn about the core unit testing principle of AAA (Arrange, Act, Assert), which will help you structure your unit test.","displayName":"Exercise 2: Solution","interactiveImport":"true"},{"path":"Samples~/3_SemanticTestAssertion","description":"You will be introduced to the Assert.That and related classes.","displayName":"Exercise 3: Semantic Test Assertion","interactiveImport":"true"},{"path":"Samples~/3_SemanticTestAssertion_Solution","description":"You will be introduced to the Assert.That and related classes.","displayName":"Exercise 3: Solution","interactiveImport":"true"},{"path":"Samples~/4_CustomComparison","description":"This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.","displayName":"Exercise 4: Custom Comparison","interactiveImport":"true"},{"path":"Samples~/4_CustomComparison_Solution","description":"This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.","displayName":"Exercise 4: Solution","interactiveImport":"true"},{"path":"Samples~/5_AssertingLogs","description":"How to test and verify code that logs to the console log.","displayName":"Exercise 5: Asserting Logs","interactiveImport":"true"},{"path":"Samples~/5_AssertingLogs_Solution","description":"How to test and verify code that logs to the console log.","displayName":"Exercise 5: Solution","interactiveImport":"true"},{"path":"Samples~/6_SetUpTearDown","description":"In this exercise, you will get practical experience in using the NUnit attributes [SetUp] and [TearDown] in order to reduce code duplication in your tests.","displayName":"Exercise 6: Set Up and Tear Down","interactiveImport":"true"},{"path":"Samples~/6_SetUpTearDown_Solution","description":"In this exercise, you will get practical experience in using the NUnit attributes [SetUp] and [TearDown] in order to reduce code duplication in your tests.","displayName":"Exercise 6: Solution","interactiveImport":"true"},{"path":"Samples~/7_PlayModeTests","description":"This exercise introduces the concept of PlayMode tests and will teach you when to use PlayMode tests, how to set up assembly definition for PlayMode tests, and how to run tests in PlayMode.","displayName":"Exercise 7: PlayMode Tests","interactiveImport":"true"},{"path":"Samples~/7_PlayModeTests_Solution","description":"This exercise introduces the concept of PlayMode tests and will teach you when to use PlayMode tests, how to set up assembly definition for PlayMode tests, and how to run tests in PlayMode.","displayName":"Exercise 7: Solution","interactiveImport":"true"},{"path":"Samples~/8_PlayModeTests_InPlayer","description":"This section will teach you how to run PlayMode tests in a Standalone player on your machine.","displayName":"Exercise 8: PlayMode Tests in Player","interactiveImport":"true"},{"path":"Samples~/9_UnityTestAttribute","description":"This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.","displayName":"Exercise 9: UnityTest Attribute","interactiveImport":"true"},{"path":"Samples~/9_UnityTestAttribute_Solution","description":"This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.","displayName":"Exercise 9: Solution","interactiveImport":"true"},{"path":"Samples~/10_LongRunningTests","description":"This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.","displayName":"Exercise 10: Long Running Tests","interactiveImport":"true"},{"path":"Samples~/10_LongRunningTests_Solution","description":"This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.","displayName":"Exercise 10: Solution","interactiveImport":"true"},{"path":"Samples~/11_SceneBasedTests","description":"In this exercise, you will learn how to test content that is stored in a scene.","displayName":"Exercise 11: Scene Based Tests","interactiveImport":"true"},{"path":"Samples~/11_SceneBasedTests_Solution","description":"In this exercise, you will learn how to test content that is stored in a scene.","displayName":"Exercise 11: Solution","interactiveImport":"true"},{"path":"Samples~/12_BuildSetupCleanup","description":"This section will introduce you to the hooks in the test framework for before and after the player build.","displayName":"Exercise 12: Build Setup and Cleanup","interactiveImport":"true"},{"path":"Samples~/12_BuildSetupCleanup_Solution","description":"This section will introduce you to the hooks in the test framework for before and after the player build.","displayName":"Exercise 12: Solution","interactiveImport":"true"},{"path":"Samples~/13_DomainReload","description":"In this section, you will learn how to invoke and wait for Domain Reloads.","displayName":"Exercise 13: Domain Reload","interactiveImport":"true"},{"path":"Samples~/13_DomainReload_Solution","description":"In this section, you will learn how to invoke and wait for Domain Reloads.","displayName":"Exercise 13: Solution","interactiveImport":"true"},{"path":"Samples~/14_PreserveTestState","description":"This section will cover how to let variables and information in your tests survive domain reloads using serialization.","displayName":"Exercise 14: Preserve Test State","interactiveImport":"true"},{"path":"Samples~/14_PreserveTestState_Solution","description":"This section will cover how to let variables and information in your tests survive domain reloads using serialization.","displayName":"Exercise 14: Solution","interactiveImport":"true"},{"path":"Samples~/15_TestCases","description":"This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.","displayName":"Exercise 15: Test Cases","interactiveImport":"true"},{"path":"Samples~/15_TestCases_Solution","description":"This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.","displayName":"Exercise 15: Solution","interactiveImport":"true"},{"path":"Samples~/16_CustomAttributes","description":"In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.","displayName":"Exercise 16: Custom Attributes","interactiveImport":"true"},{"path":"Samples~/16_CustomAttributes_Solution","description":"In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.","displayName":"Exercise 16: Solution","interactiveImport":"true"},{"path":"Samples~/17_RunningTestsProgrammatically","description":"This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.","displayName":"Exercise 17: Runnings Tests Programmatically","interactiveImport":"true"},{"path":"Samples~/17_RunningTestsProgrammatically_Solution","description":"This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.","displayName":"Exercise 17: Solution","interactiveImport":"true"}],"repository":{"url":"https://github.com/Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"e002a08a9e8b72e59085d54910c8ff164a71b299"},"unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.3.1"},"name":"com.unity.test-framework","version":"1.3.1","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"2.0.3","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"747753a881bfc413a5c05c4343ee7c0ccb7eea9d","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.3.1.tgz"}},"2.0.1-exp.2":{"type":"asset","unity":"2019.4","upmCi":{"footprint":"1122b33e5babf78ee65a979f8b0cb5986126f3dd"},"repository":{"url":"https://github.com/Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"ade18f90f3e1e61e28c7054ef70bd688ccbf7385"},"unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"2.0.1-exp.2"},"name":"com.unity.test-framework","version":"2.0.1-exp.2","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"2.0.3","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"05faff6b7d342bf05dbbbf5a1ca589b04cf584c6","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-2.0.1-exp.2.tgz"}},"1.3.0":{"type":"asset","unity":"2019.4","upmCi":{"footprint":"5be0abd91b34da2a4f79a481f5725c5c83120401"},"samples":[{"path":"Samples~/1_RunningTest_Project","description":"This exercise will teach you how to set up a simple Unity project with a test assembly and tests.","displayName":"Exercise 1: Running Tests","interactiveImport":"true"},{"path":"Samples~/1_RunningTest_Project_Solution","description":"This exercise will teach you how to set up a simple Unity project with a test assembly and tests.","displayName":"Exercise 1: Solution","interactiveImport":"true"},{"path":"Samples~/2_ActArrangeAssert","description":"In this exercise, you will learn about the core unit testing principle of AAA (Arrange, Act, Assert), which will help you structure your unit test.","displayName":"Exercise 2: Arrange, Act, Assert","interactiveImport":"true"},{"path":"Samples~/2_ActArrangeAssert_Solution","description":"In this exercise, you will learn about the core unit testing principle of AAA (Arrange, Act, Assert), which will help you structure your unit test.","displayName":"Exercise 2: Solution","interactiveImport":"true"},{"path":"Samples~/3_SemanticTestAssertion","description":"You will be introduced to the Assert.That and related classes.","displayName":"Exercise 3: Semantic Test Assertion","interactiveImport":"true"},{"path":"Samples~/3_SemanticTestAssertion_Solution","description":"You will be introduced to the Assert.That and related classes.","displayName":"Exercise 3: Solution","interactiveImport":"true"},{"path":"Samples~/4_CustomComparison","description":"This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.","displayName":"Exercise 4: Custom Comparison","interactiveImport":"true"},{"path":"Samples~/4_CustomComparison_Solution","description":"This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.","displayName":"Exercise 4: Solution","interactiveImport":"true"},{"path":"Samples~/5_AssertingLogs","description":"How to test and verify code that logs to the console log.","displayName":"Exercise 5: Asserting Logs","interactiveImport":"true"},{"path":"Samples~/5_AssertingLogs_Solution","description":"How to test and verify code that logs to the console log.","displayName":"Exercise 5: Solution","interactiveImport":"true"},{"path":"Samples~/6_SetUpTearDown","description":"In this exercise, you will get practical experience in using the NUnit attributes [SetUp] and [TearDown] in order to reduce code duplication in your tests.","displayName":"Exercise 6: Set Up and Tear Down","interactiveImport":"true"},{"path":"Samples~/6_SetUpTearDown_Solution","description":"In this exercise, you will get practical experience in using the NUnit attributes [SetUp] and [TearDown] in order to reduce code duplication in your tests.","displayName":"Exercise 6: Solution","interactiveImport":"true"},{"path":"Samples~/7_PlayModeTests","description":"This exercise introduces the concept of PlayMode tests and will teach you when to use PlayMode tests, how to set up assembly definition for PlayMode tests, and how to run tests in PlayMode.","displayName":"Exercise 7: PlayMode Tests","interactiveImport":"true"},{"path":"Samples~/7_PlayModeTests_Solution","description":"This exercise introduces the concept of PlayMode tests and will teach you when to use PlayMode tests, how to set up assembly definition for PlayMode tests, and how to run tests in PlayMode.","displayName":"Exercise 7: Solution","interactiveImport":"true"},{"path":"Samples~/8_PlayModeTests_InPlayer","description":"This section will teach you how to run PlayMode tests in a Standalone player on your machine.","displayName":"Exercise 8: PlayMode Tests in Player","interactiveImport":"true"},{"path":"Samples~/9_UnityTestAttribute","description":"This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.","displayName":"Exercise 9: UnityTest Attribute","interactiveImport":"true"},{"path":"Samples~/9_UnityTestAttribute_Solution","description":"This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.","displayName":"Exercise 9: Solution","interactiveImport":"true"},{"path":"Samples~/10_LongRunningTests","description":"This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.","displayName":"Exercise 10: Long Running Tests","interactiveImport":"true"},{"path":"Samples~/10_LongRunningTests_Solution","description":"This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.","displayName":"Exercise 10: Solution","interactiveImport":"true"},{"path":"Samples~/11_SceneBasedTests","description":"In this exercise, you will learn how to test content that is stored in a scene.","displayName":"Exercise 11: Scene Based Tests","interactiveImport":"true"},{"path":"Samples~/11_SceneBasedTests_Solution","description":"In this exercise, you will learn how to test content that is stored in a scene.","displayName":"Exercise 11: Solution","interactiveImport":"true"},{"path":"Samples~/12_BuildSetupCleanup","description":"This section will introduce you to the hooks in the test framework for before and after the player build.","displayName":"Exercise 12: Build Setup and Cleanup","interactiveImport":"true"},{"path":"Samples~/12_BuildSetupCleanup_Solution","description":"This section will introduce you to the hooks in the test framework for before and after the player build.","displayName":"Exercise 12: Solution","interactiveImport":"true"},{"path":"Samples~/13_DomainReload","description":"In this section, you will learn how to invoke and wait for Domain Reloads.","displayName":"Exercise 13: Domain Reload","interactiveImport":"true"},{"path":"Samples~/13_DomainReload_Solution","description":"In this section, you will learn how to invoke and wait for Domain Reloads.","displayName":"Exercise 13: Solution","interactiveImport":"true"},{"path":"Samples~/14_PreserveTestState","description":"This section will cover how to let variables and information in your tests survive domain reloads using serialization.","displayName":"Exercise 14: Preserve Test State","interactiveImport":"true"},{"path":"Samples~/14_PreserveTestState_Solution","description":"This section will cover how to let variables and information in your tests survive domain reloads using serialization.","displayName":"Exercise 14: Solution","interactiveImport":"true"},{"path":"Samples~/15_TestCases","description":"This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.","displayName":"Exercise 15: Test Cases","interactiveImport":"true"},{"path":"Samples~/15_TestCases_Solution","description":"This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.","displayName":"Exercise 15: Solution","interactiveImport":"true"},{"path":"Samples~/16_CustomAttributes","description":"In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.","displayName":"Exercise 16: Custom Attributes","interactiveImport":"true"},{"path":"Samples~/16_CustomAttributes_Solution","description":"In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.","displayName":"Exercise 16: Solution","interactiveImport":"true"},{"path":"Samples~/17_RunningTestsProgrammatically","description":"This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.","displayName":"Exercise 17: Runnings Tests Programmatically","interactiveImport":"true"},{"path":"Samples~/17_RunningTestsProgrammatically_Solution","description":"This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.","displayName":"Exercise 17: Solution","interactiveImport":"true"}],"repository":{"url":"https://github.com/Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"03f3e4d9b249c0523c92b8eda74e3b596fca34f5"},"unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.3.0"},"name":"com.unity.test-framework","version":"1.3.0","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"2.0.3","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"55dbdb246f2946d70422128004784adfe521e46b","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.3.0.tgz"}},"1.1.33":{"_id":"com.unity.test-framework@1.1.33","_upm":{"changelog":"- Fixed an issue where using Assert.Expect with the same string multiple times can lead to incorrect errors in some cases (DSTR-442).\r\n- Improved the logging when using multiple Assert.Expect that the logs appear in another order than expected (DSTR-442).\r\n- Moved the targetPlatform specified when running tests in the TestRunnerApi from the Filter to the ExecutionSettings (DSTR-186).\r\n- Fixed an issue where an inheritance of UnityPlatformAttribute which was not working (ESTT-70).\r\n- Fixed the log of excluded platforms which was not displaying the right information.\r\n- Added filename and linenumber to test finished message (DSTR-505).\r\n- Add the possibility of running tests in a specified order from a test list (DSTR-494)."},"type":"asset","_from":"file:/tmp/com.unity.test-framework@1.1.33-ql6qz2go.tgz","unity":"2019.2","upmCi":{"footprint":"2279493b9acd323ab758f64369634dc0daf0dbac"},"_resolved":"/tmp/com.unity.test-framework@1.1.33-ql6qz2go.tgz","_integrity":"sha512-3DPIuktgIXX4xi83OKqk6C9PSaa2LxrpQaABEcGoSTXEqmVFRgogMz30j3CJsSy6K6lukoFIgg6d4ol89rFfiQ==","repository":{"url":"https://github.com/Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"34a4d423d64926635eb36d3bb86276179cc186e1"},"_npmVersion":"7.5.2","_nodeVersion":"12.22.5","unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.1.33"},"name":"com.unity.test-framework","version":"1.1.33","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"1.0.6","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"9935227424b5f785fad83e4d39d7c00f7e633353","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.1.33.tgz"}},"2.0.1-exp.1":{"_id":"com.unity.test-framework@2.0.1-exp.1","upm":{"changelog":"- Reverted \"All tests are now run inside a InitTestScene, regardless of filter\".\r\n- Modify the RequiresPlayMode feature in order to be opt-in.\r\n- Refactored documentation for 2.0.\r\n- Fixed an issue where Oculus Quest headsets might timeout before the test run starts (DSTR-404).\r\n- Fixed an issue where Explicit tests were included in the run if the assembly or namespace was selected (DSTR-405).\r\n- Added stack traces for exceptions thrown in other threads while a test is running (DSTR-38).\r\n- Fixed \"Open source code\" on tests when located inside a package.\r\n- Added editor analytics.\r\n- Performance Improvements:\r\n  - greatly reduced the time taken to clear test results and build up the test filters\r\n  - optimized the workflow of running a subset of the tests from the test runner window by optimizing the filtering code"},"type":"asset","_from":"file:/tmp/com.unity.test-framework@2.0.1-exp.1-eq2xqsqr.tgz","unity":"2019.4","upmCi":{"footprint":"076f57aa70bac37436a17e684019f98ba7aa16cc"},"_resolved":"/tmp/com.unity.test-framework@2.0.1-exp.1-eq2xqsqr.tgz","_integrity":"sha512-VNzJszw6TWdCJt7S0IKavYBrd3BjEGSwl2Uzq81ip4nLxCvzQ0gVpFa4H1S+p0c6R0WPuq6+lE+l7hESBZ2VPQ==","repository":{"url":"https://github.com/Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"ff525a405548dba7b9a1a66fa342b893a11eff4a"},"_npmVersion":"7.5.2","_nodeVersion":"12.22.5","unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"2.0.1-exp.1"},"name":"com.unity.test-framework","version":"2.0.1-exp.1","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"2.0.2","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"3cb9aee925c82c09a4ae3aded3bc31acedc1aecf","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-2.0.1-exp.1.tgz"}},"1.1.31":{"_id":"com.unity.test-framework@1.1.31","type":"asset","_from":"file:/tmp/com.unity.test-framework@1.1.31-x0kg3rua.tgz","unity":"2019.2","upmCi":{"footprint":"2cdc185973c062ba6595ace54a10712ac7dbec1d"},"_resolved":"/tmp/com.unity.test-framework@1.1.31-x0kg3rua.tgz","_integrity":"sha512-Vl1JNdjkjVF2yZF40K5vbDY5ZvflQNPN6RsPwhYIbWMXz+3gXMR5kSbjJcfcAXMzbW1I8QpU7huaJmslDbtORA==","repository":{"url":"https://github.com/Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"438b0defc147c9be5c969ca79ff03a722b4590ed"},"_npmVersion":"7.5.2","_nodeVersion":"12.21.0","unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.1.31"},"name":"com.unity.test-framework","version":"1.1.31","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"1.0.6","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"1b49da8e6289f4e69f18022356c86a2a2cdd38be","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.1.31.tgz"}},"2.0.1-pre.18":{"type":"asset","name":"com.unity.test-framework","version":"2.0.1-pre.18","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","dependencies":{"com.unity.ext.nunit":"2.0.2","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"97ce43e65fac75f7b7dae7cbcd354cef00a27c1f","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-2.0.1-pre.18.tgz"}},"2.0.1-pre.12":{"type":"asset","name":"com.unity.test-framework","version":"2.0.1-pre.12","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","dependencies":{"com.unity.ext.nunit":"2.0.2","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"b4e21256a8ff06200549210c193dffc3c1aca411","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-2.0.1-pre.12.tgz"}},"1.1.30":{"_id":"com.unity.test-framework@1.1.30","type":"asset","_from":"file:com.unity.test-framework-1.1.30.tgz","unity":"2019.2","upmCi":{"footprint":"f03027503ed262c6ee9ff66ac21fbb6ac2e096a4"},"_resolved":"/pkgprom/com.unity.test-framework-1.1.30.tgz","_integrity":"sha512-BnXERucxA1Zur6YeMN7f8ALrfLnKaeEPgtkyhTyBjArB4Cdt5kA1Ah13+pPoac9NgSZ4U1T+yzIGDDFA2Y38Hg==","repository":{"url":"https://github.com/Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"4a3f541cb46e2f6875b3a938daba8c7113020873"},"_npmVersion":"7.5.2","_nodeVersion":"12.21.0","unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.1.30"},"name":"com.unity.test-framework","version":"1.1.30","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"1.0.6","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"15a2532bce07bd368e4588a2cd3bb7913591b984","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.1.30.tgz"}},"1.1.29":{"_id":"com.unity.test-framework@1.1.29","bugs":{"url":"https://github.com/Unity-Technologies/com.unity.test-framework/issues"},"type":"asset","_from":"file:com.unity.test-framework-1.1.29.tgz","unity":"2019.2","upmCi":{"footprint":"461bb7357f40bbbf73fa3e97c5398321af25162b"},"readme":"ERROR: No README data found!","homepage":"https://github.com/Unity-Technologies/com.unity.test-framework#readme","_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"dac53542acdab7a12e9ebf111ac588d0e53cf483"},"_npmVersion":"6.13.4","_nodeVersion":"12.16.1","unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.1.29"},"name":"com.unity.test-framework","version":"1.1.29","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"1.0.6","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"782f6db23f07ee0a9b519fe484ef4a1f9fa9608a","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.1.29.tgz"}},"1.1.27":{"_id":"com.unity.test-framework@1.1.27","bugs":{"url":"https://github.com/Unity-Technologies/com.unity.test-framework/issues"},"type":"asset","_from":"file:com.unity.test-framework-1.1.27.tgz","unity":"2019.2","upmCi":{"footprint":"5cd8d3ab3fa9e2425fdf781a7fc4ece088e84687"},"readme":"ERROR: No README data found!","_npmUser":{"email":"mike.adkins@unity3d.com"},"homepage":"https://github.com/Unity-Technologies/com.unity.test-framework#readme","_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"c2f2cc9b7ea61d42964257363595dff5e8c47c42"},"_npmVersion":"6.14.11","_nodeVersion":"14.16.0","unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.1.27"},"name":"com.unity.test-framework","version":"1.1.27","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"1.0.6","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"9b7e935a3c938570af8c1b1b0c4771605c1994f3","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.1.27.tgz"}},"1.1.26":{"_id":"com.unity.test-framework@1.1.26","bugs":{"url":"https://github.com/Unity-Technologies/com.unity.test-framework/issues"},"type":"asset","_from":"file:com.unity.test-framework-1.1.26.tgz","unity":"2019.2","upmCi":{"footprint":"985f049ed3550dc48779b44426aaae72f414e1c2"},"readme":"ERROR: No README data found!","_npmUser":{"email":"mike.adkins@unity3d.com"},"homepage":"https://github.com/Unity-Technologies/com.unity.test-framework#readme","_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"ea9d07e64e6d63c4f2fd8b6bc57df0f452ff4fae"},"_npmVersion":"6.14.11","_nodeVersion":"14.16.0","unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.1.26"},"name":"com.unity.test-framework","version":"1.1.26","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"1.0.6","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"e3a4b1bb2d26fa1a51fa1eebe4a38fd5cc0e265e","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.1.26.tgz"}},"1.1.24":{"_id":"com.unity.test-framework@1.1.24","bugs":{"url":"https://github.com/Unity-Technologies/com.unity.test-framework/issues"},"type":"asset","unity":"2019.2","upmCi":{"footprint":"e6b5fb217e460f8d622c76589d96ee3dfb3a059d"},"readme":"ERROR: No README data found!","_npmUser":{},"homepage":"https://github.com/Unity-Technologies/com.unity.test-framework#readme","repository":{"url":"git+https://github.com/Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"e6fe8892689398c0d9aba4587e0ba69edc3d82b8"},"_npmVersion":"5.6.0","_nodeVersion":"8.17.0","unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.1.24"},"name":"com.unity.test-framework","version":"1.1.24","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"1.0.6","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"656c29fe86d513f1b7e44e0b1d0705ad7885e02c","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.1.24.tgz"}},"1.1.22":{"_id":"com.unity.test-framework@1.1.22","bugs":{"url":"https://github.com/Unity-Technologies/com.unity.test-framework/issues"},"type":"asset","unity":"2019.2","upmCi":{"footprint":"a7696c2774acb6a55c4245379d06b2ebf69c555c"},"readme":"ERROR: No README data found!","_npmUser":{},"homepage":"https://github.com/Unity-Technologies/com.unity.test-framework#readme","repository":{"url":"git+https://github.com/Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"56c667cbc326a1cbab8dfd7ebc693a1121d0abe1"},"_npmVersion":"5.6.0","_nodeVersion":"8.17.0","unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.1.22"},"name":"com.unity.test-framework","version":"1.1.22","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"1.0.6","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"67e99fcc412353ea7656a40730f1e9bdd306c619","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.1.22.tgz"}},"1.1.20":{"_id":"com.unity.test-framework@1.1.20","bugs":{"url":"https://github.com/Unity-Technologies/com.unity.test-framework/issues"},"type":"asset","unity":"2019.2","upmCi":{"footprint":"6bbcd578b4d1dff0f4db7da389f8cff13f752297"},"readme":"ERROR: No README data found!","_npmUser":{},"homepage":"https://github.com/Unity-Technologies/com.unity.test-framework#readme","repository":{"url":"git+https://github.com/Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"f04391d9987f4a534f886a9638b011d53e5871d8"},"_npmVersion":"5.6.0","_nodeVersion":"8.17.0","unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.1.20"},"name":"com.unity.test-framework","version":"1.1.20","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"1.0.6","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"02cfd849fea433500c9ae1637ec75c6498b7412d","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.1.20.tgz"}},"1.1.19":{"_id":"com.unity.test-framework@1.1.19","bugs":{"url":"https://github.com/Unity-Technologies/com.unity.test-framework/issues"},"type":"asset","unity":"2019.2","upmCi":{"footprint":"4ed8fa0a17af25873219feb3cca20aac7c1cbecb"},"readme":"ERROR: No README data found!","_npmUser":{},"homepage":"https://github.com/Unity-Technologies/com.unity.test-framework#readme","repository":{"url":"git+https://github.com/Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"83583c7273ee961612200215e8989039bbce8748"},"_npmVersion":"5.6.0","_nodeVersion":"8.17.0","unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.1.19"},"name":"com.unity.test-framework","version":"1.1.19","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"1.0.5","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"cbbad7e4787bc5ec2854d7411fb57d1f16e75a04","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.1.19.tgz"}},"1.1.18":{"_id":"com.unity.test-framework@1.1.18","bugs":{"url":"https://github.com/Unity-Technologies/com.unity.test-framework/issues"},"type":"asset","unity":"2019.2","upmCi":{"footprint":"41b0bff6ebd4eddf08bd457acf4f7cc690ea9c34"},"readme":"ERROR: No README data found!","_npmUser":{},"homepage":"https://github.com/Unity-Technologies/com.unity.test-framework#readme","repository":{"url":"git+https://github.com/Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"14025b364215f4465cbe1beb7a81e486b2687ced"},"_npmVersion":"5.6.0","_nodeVersion":"8.17.0","unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.1.18"},"name":"com.unity.test-framework","version":"1.1.18","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"1.0.0","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"360acbfd4ea9a1d5a8583aa6b9ce369967f1f35c","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.1.18.tgz"}},"1.1.16":{"_id":"com.unity.test-framework@1.1.16","bugs":{"url":"https://github.com/Unity-Technologies/com.unity.test-framework/issues"},"type":"asset","_from":"file:C:/Users/BRIANR~1/AppData/Local/Temp/com.unity.test-framework-1.1.16.tgz","unity":"2019.2","upmCi":{"footprint":"748fd7180e02e13a3fb2f6ef0951400ea43cd23b"},"readme":"ERROR: No README data found!","_npmUser":{"email":"brian.rodway@unity3d.com"},"homepage":"https://github.com/Unity-Technologies/com.unity.test-framework#readme","_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"c8d002c23197e67e6da41d6a20b5f6302c1c6045"},"_npmVersion":"6.14.4","_nodeVersion":"12.16.3","unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.1.16"},"name":"com.unity.test-framework","version":"1.1.16","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"1.0.0","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"9d1cca52ea4163e71baf9f67d2a8912348f575bc","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.1.16.tgz"}},"1.1.14":{"_id":"com.unity.test-framework@1.1.14","bugs":{"url":"https://github.com/Unity-Technologies/com.unity.test-framework/issues"},"type":"asset","_from":"..\\..\\..\\..\\MIKE~1.ADK\\AppData\\Local\\Temp\\com.unity.test-framework-1.1.14.tgz","unity":"2019.2","readme":"ERROR: No README data found!","_shasum":"06edaf9f5c8f6b938591108e2dc29b00d4756402","scripts":{},"_npmUser":{},"homepage":"https://github.com/Unity-Technologies/com.unity.test-framework#readme","_resolved":"file:..\\..\\..\\..\\MIKE~1.ADK\\AppData\\Local\\Temp\\com.unity.test-framework-1.1.14.tgz","repository":{"url":"git+https://github.com/Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"25d6ff2e3936e31fdfd58486fad3a3bc90d6e3c6","footprint":"eaa490990582bbefc9aa4495a743f4d28a036cd8"},"_npmVersion":"3.10.10","_nodeVersion":"6.10.0","unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.1.14"},"name":"com.unity.test-framework","version":"1.1.14","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"1.0.0","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"06edaf9f5c8f6b938591108e2dc29b00d4756402","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.1.14.tgz"}},"1.1.13":{"_id":"com.unity.test-framework@1.1.13","bugs":{"url":"https://github.com/Unity-Technologies/com.unity.test-framework/issues"},"type":"asset","_from":"../../../var/folders/tn/t8btbstx12l33r08ww_2c0_1_q91g9/T/com.unity.test-framework-1.1.13.tgz","unity":"2019.2","readme":"ERROR: No README data found!","_shasum":"dd030697422b028afcaf141d943d73d9d6113b82","scripts":{},"_npmUser":{},"homepage":"https://github.com/Unity-Technologies/com.unity.test-framework#readme","_resolved":"file:../../../var/folders/tn/t8btbstx12l33r08ww_2c0_1_q91g9/T/com.unity.test-framework-1.1.13.tgz","repository":{"url":"git+https://github.com/Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"4e23f3669a98972ba72ea8f4af092123c2a8f8ed","footprint":"0edbd71b6e546163efc787a25bec5c553ea56f7e"},"_npmVersion":"3.10.10","_nodeVersion":"6.10.0","unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.1.13"},"name":"com.unity.test-framework","version":"1.1.13","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"1.0.0","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"dd030697422b028afcaf141d943d73d9d6113b82","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.1.13.tgz"}},"1.1.11":{"_id":"com.unity.test-framework@1.1.11","type":"asset","unity":"2019.2","scripts":{},"repository":{"url":"git@github.com:Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"815e122f0a538e96d3b3b29e23bb7691bd2d4844"},"unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.1.11"},"name":"com.unity.test-framework","version":"1.1.11","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode tests in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"1.0.0","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"678904bd214d9e34cc1b436bfa0d10bcd9c64d51","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.1.11.tgz"}},"1.1.9":{"_id":"com.unity.test-framework@1.1.9","type":"asset","unity":"2019.2","scripts":{},"repository":{"url":"git@github.com:Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"675e1fa10a8abe6152d868a1d936847c7d3ff1de"},"unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.1.9"},"name":"com.unity.test-framework","version":"1.1.9","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode test in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"1.0.0","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"485f60d04a6a3a31affd4c4dc5f7bd8da8ee86e1","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.1.9.tgz"}},"1.1.8":{"_id":"com.unity.test-framework@1.1.8","type":"asset","unity":"2019.2","scripts":{},"category":"Unity Test Framework","repository":{"url":"git@github.com:Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"ca999b1c7bb9f7293996f3844cbfe3e239341312"},"unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.1.8"},"name":"com.unity.test-framework","version":"1.1.8","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode test in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"1.0.0","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"1f8b85ada1d8e94e73ecff32023f0bff8c7c91a9","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.1.8.tgz"}},"1.1.5":{"_id":"com.unity.test-framework@1.1.5","type":"asset","unity":"2019.2","scripts":{},"category":"Unity Test Framework","repository":{"url":"git@github.com:Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"e2635ede323d0014a5982c486f810e60c69bdef6"},"unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.1.5"},"name":"com.unity.test-framework","version":"1.1.5","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode test in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"1.0.0","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"a575f2b92ea2a69b690c204ff2fe6e4bbac47529","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.1.5.tgz"}},"1.1.3":{"_id":"com.unity.test-framework@1.1.3","unity":"2019.2","scripts":{},"category":"Unity Test Framework","repository":{"url":"git@github.com:Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"9b6648a22e478d196d651dc45738be75031581cd"},"unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.1.3"},"name":"com.unity.test-framework","version":"1.1.3","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode test in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"1.0.0","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"c918d864b9e438a1fdcab316f9825c1289162251","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.1.3.tgz"}},"1.1.2":{"_id":"com.unity.test-framework@1.1.2","unity":"2019.2","scripts":{},"category":"Unity Test Framework","repository":{"url":"git@github.com:Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"f9b38edf0060663aec666f6e3d8b5df321b61054"},"unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.1.2"},"name":"com.unity.test-framework","version":"1.1.2","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode test in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"1.0.0","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"5365f2c094e6cee3a835708c0465d8f8ca33a526","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.1.2.tgz"}},"1.1.1":{"_id":"com.unity.test-framework@1.1.1","unity":"2019.2","scripts":{},"category":"Unity Test Framework","repository":{"url":"git@github.com:Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"d75616cb80253d5af7871641ebca3bd30d6bfa5c"},"unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.1.1"},"name":"com.unity.test-framework","version":"1.1.1","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode test in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"1.0.0","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"890cc911e83bbe1c7aab7560b892b7263c489e0c","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.1.1.tgz"}},"1.1.0":{"_id":"com.unity.test-framework@1.1.0","unity":"2019.2","scripts":{},"category":"Unity Test Framework","repository":{"url":"git@github.com:Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"3b910b1d0baa7efc7d9a11e88ce6a499b408e1b4"},"unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.1.0"},"name":"com.unity.test-framework","version":"1.1.0","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode test in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"1.0.0","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"5408c08e40ba27cceab0b43cc7f8b270b8fa8acc","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.1.0.tgz"}},"1.0.18":{"_id":"com.unity.test-framework@1.0.18","unity":"2019.2","scripts":{},"category":"Unity Test Framework","repository":{"url":"git@github.com:Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"be28169097cb9620587d8d500ce06c811a5e4dda"},"unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.0.18"},"name":"com.unity.test-framework","version":"1.0.18","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode test in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"1.0.0","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"6af940ba59f33cc0a46fb36cb255180a1fa1393e","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.0.18.tgz"}},"1.0.17":{"_id":"com.unity.test-framework@1.0.17","unity":"2019.2","scripts":{},"category":"Unity Test Framework","repository":{"url":"git@github.com:Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"86cf68794b559b66812f216b3554fd92b969980a"},"unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.0.17"},"name":"com.unity.test-framework","version":"1.0.17","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode test in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"1.0.0","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"e52232b853d7c83834152c185cab71ecf8e07969","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.0.17.tgz"}},"1.0.16":{"_id":"com.unity.test-framework@1.0.16","unity":"2019.2","scripts":{},"category":"Unity Test Framework","repository":{"url":"git@github.com:Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"3980d83b38c9c9dcf952d53683c5916d816d772b"},"unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.0.16"},"name":"com.unity.test-framework","version":"1.0.16","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode test in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"1.0.0","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"4efcb17f7fec79e3eb1b2caad4f2f13ca93cd302","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.0.16.tgz"}},"1.0.14":{"_id":"com.unity.test-framework@1.0.14","unity":"2019.2","scripts":{},"category":"Unity Test Framework","repository":{"url":"git@github.com:Unity-Technologies/com.unity.test-framework.git","type":"git","revision":"badf286820bf8fdb18b7b09e059ccc6f1f5ffaa6"},"unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.0.14"},"name":"com.unity.test-framework","version":"1.0.14","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode test in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"1.0.0","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"dist":{"shasum":"b683ae77f9347a974eeb5ba293227d7170543ee4","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.0.14.tgz"}},"1.0.13":{"_id":"com.unity.test-framework@1.0.13","unity":"2019.2","scripts":{},"category":"Unity Test Framework","repository":{"url":"git@gitlab.cds.internal.unity3d.com/upm-packages/core/com.unity.test-framework.git","type":"git","revision":"8d09534f1c9f96b37fa38167a8697e5965ab58b8"},"unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.0.13"},"name":"com.unity.test-framework","version":"1.0.13","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode test in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"1.0.0"},"dist":{"shasum":"7df1d7023eddbc14ff231d92640da2858d26941c","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.0.13.tgz"}},"1.0.12":{"_id":"com.unity.test-framework@1.0.12","unity":"2019.2","scripts":{},"category":"Unity Test Framework","repository":{"url":"git@gitlab.cds.internal.unity3d.com/upm-packages/core/com.unity.test-framework.git","type":"git","revision":"e77641787962b852f76b1528594994266e48f0de"},"unityRelease":"0a10","relatedPackages":{"com.unity.test-framework.tests":"1.0.12"},"name":"com.unity.test-framework","version":"1.0.12","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode test in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"1.0.0"},"dist":{"shasum":"b1bdbd9216e56b5252c630c8cb67651dee0dced2","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.0.12.tgz"}},"1.0.11":{"_id":"com.unity.test-framework@1.0.11","unity":"2019.2","scripts":{},"category":"Unity Test Framework","repository":{"url":"git@gitlab.cds.internal.unity3d.com/upm-packages/core/com.unity.test-framework.git","type":"git","revision":"b3c8a4ec21fc42bda8e2e4f062b6eea40d18ecd7"},"relatedPackages":{"com.unity.test-framework.tests":"1.0.11"},"name":"com.unity.test-framework","version":"1.0.11","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode test in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"1.0.0"},"dist":{"shasum":"ef94ec3bfb247af8ceb06601b3d7637991286487","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.0.11.tgz"}},"1.0.9":{"_id":"com.unity.test-framework@1.0.9","unity":"2019.2","scripts":{},"category":"Unity Test Framework","repository":{"url":"git@gitlab.cds.internal.unity3d.com/upm-packages/core/com.unity.test-framework.git","type":"git","revision":"d5f8d21a27786c593d36c2809c368215e720a8d3"},"relatedPackages":{"com.unity.test-framework.tests":"1.0.9"},"name":"com.unity.test-framework","version":"1.0.9","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode test in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"1.0.0"},"dist":{"shasum":"373d49b30e447729fbddb5515f74bf2ef1d7b3bf","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.0.9.tgz"}},"1.0.7":{"_id":"com.unity.test-framework@1.0.7","unity":"2019.2","scripts":{},"category":"Unity Test Framework","repository":{"url":"git@gitlab.cds.internal.unity3d.com/upm-packages/core/com.unity.test-framework.git","type":"git","revision":"07bbac759b4afbfb36fef073a85d599a7d37166e"},"relatedPackages":{"com.unity.test-framework.tests":"1.0.7"},"name":"com.unity.test-framework","version":"1.0.7","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode test in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"1.0.0"},"dist":{"shasum":"ddc19c29bcddaf53eff094dbe3680f7093510f81","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.0.7.tgz"}},"1.0.0":{"_id":"com.unity.test-framework@1.0.0","unity":"2019.2","scripts":{},"category":"Unity Test Framework","repository":{"url":"git@gitlab.cds.internal.unity3d.com/upm-packages/core/com.unity.test-framework.git","type":"git","revision":"2c1a5da09dd8f4fa29da90f8f18256b2627991b3"},"relatedPackages":{"com.unity.test-framework.tests":"1.0.0"},"name":"com.unity.test-framework","version":"1.0.0","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode test in Unity.","keywords":["Test","TestFramework"],"dependencies":{"com.unity.ext.nunit":"1.0.0"},"dist":{"shasum":"ed9a865766a242d76dba62e39ce5f6509bb6e991","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-1.0.0.tgz"}},"0.0.29-preview":{"_id":"com.unity.test-framework@0.0.29-preview","unity":"2019.2","category":"Unity Test Framework","repository":{"url":"git@gitlab.cds.internal.unity3d.com/upm-packages/core/com.unity.test-framework.git","type":"git","revision":"5ca901c5997e84def619e295d24ef4187a295fd4"},"relatedPackages":{"com.unity.test-framework.tests":"0.0.29-preview"},"name":"com.unity.test-framework","version":"0.0.29-preview","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode test in Unity.","keywords":["Test","TestFramework"],"dependencies":{"nuget.mono-cecil":"0.1.6-preview","com.unity.ext.nunit":"0.1.9-preview"},"dist":{"shasum":"54452aff530791809c9d32cc4128b4fad55e6063","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-0.0.29-preview.tgz"}},"0.0.4-preview":{"_id":"com.unity.test-framework@0.0.4-preview","unity":"2018.3","category":"Unity Test Framework","name":"com.unity.test-framework","version":"0.0.4-preview","displayName":"Test Framework","description":"Test framework for running Edit mode and Play mode test in Unity.","keywords":["Test","TestFramework"],"dependencies":{"nuget.mono-cecil":"0.1.5-preview","com.unity.ext.nunit":"0.1.5-preview"},"dist":{"shasum":"a41ad162602fed44587ed44f51fe2f39c3d84537","tarball":"https://download.packages.unity.com/com.unity.test-framework/-/com.unity.test-framework-0.0.4-preview.tgz"}}},"time":{"1.4.6":"2025-02-05T11:40:35.899Z","1.4.5":"2024-07-25T11:58:08.000Z","1.4.4":"2024-04-12T09:00:58.000Z","1.4.3":"2024-01-17T13:06:28.000Z","1.4.2":"2023-12-12T14:04:42.000Z","1.4.1":"2023-11-29T15:52:25.000Z","1.4.0":"2023-11-13T11:04:01.000Z","1.3.9":"2023-08-22T16:03:01.000Z","1.3.8":"2023-07-10T13:47:18.000Z","1.3.7":"2023-06-12T15:11:23.000Z","1.3.5":"2023-05-22T13:49:50.000Z","1.3.4":"2023-03-31T15:02:36.000Z","1.3.3":"2023-02-14T15:28:59.000Z","1.3.2":"2022-12-12T10:24:22.000Z","1.3.1":"2022-11-24T09:23:53.000Z","2.0.1-exp.2":"2022-11-14T12:25:41.000Z","1.3.0":"2022-10-17T09:30:18.000Z","1.1.33":"2022-07-19T09:54:30.000Z","2.0.1-exp.1":"2022-04-22T08:32:24.000Z","1.1.31":"2022-02-14T09:10:21.000Z","2.0.1-pre.18":"2022-01-24T18:30:11.000Z","2.0.1-pre.12":"2022-01-19T18:16:21.000Z","1.1.30":"2021-10-19T13:28:56.000Z","1.1.29":"2021-08-17T10:17:45.000Z","1.1.27":"2021-06-16T21:19:22.000Z","1.1.26":"2021-05-26T16:39:35.000Z","1.1.24":"2021-03-05T19:44:54.000Z","1.1.22":"2021-01-22T17:48:50.000Z","1.1.20":"2020-12-07T22:12:51.000Z","1.1.19":"2020-11-18T16:48:11.000Z","1.1.18":"2020-10-09T13:49:55.000Z","1.1.16":"2020-07-27T07:25:49.000Z","1.1.14":"2020-04-21T17:07:29.000Z","1.1.13":"2020-03-17T12:59:06.000Z","1.1.11":"2020-01-23T14:16:50.000Z","1.1.9":"2019-12-18T17:09:55.000Z","1.1.8":"2019-11-22T20:05:30.000Z","1.1.5":"2019-10-28T15:05:03.000Z","1.1.3":"2019-09-23T16:05:21.000Z","1.1.2":"2019-09-16T16:04:21.000Z","1.1.1":"2019-08-08T18:03:58.000Z","1.1.0":"2019-08-05T17:04:05.000Z","1.0.18":"2019-07-16T04:04:02.000Z","1.0.17":"2019-07-12T21:03:30.000Z","1.0.16":"2019-06-21T15:03:16.000Z","1.0.14":"2019-06-11T18:02:51.000Z","1.0.13":"2019-05-08T18:02:32.000Z","1.0.12":"2019-04-24T21:10:27.000Z","1.0.11":"2019-04-15T14:02:32.000Z","1.0.9":"2019-04-03T12:32:42.000Z","1.0.7":"2019-04-03T12:32:39.000Z","1.0.0":"2019-04-03T12:32:34.000Z","0.0.29-preview":"2019-04-03T12:32:31.000Z","0.0.4-preview":"2019-04-03T12:32:28.000Z"},"dist-tags":{"latest":"1.4.6"},"etag":"\"30e11-6pwkAExifcFhRA2wxAcLWItR91E\""}