235 lines
11 KiB
JSON
235 lines
11 KiB
JSON
{
|
|
"name": "com.unity.test-framework",
|
|
"displayName": "Test Framework",
|
|
"version": "1.4.6",
|
|
"unity": "2019.4",
|
|
"unityRelease": "1f1",
|
|
"description": "Test framework for running Edit mode and Play mode tests in Unity.",
|
|
"keywords": [
|
|
"Test",
|
|
"TestFramework"
|
|
],
|
|
"category": "Unity Test Framework",
|
|
"repository": {
|
|
"url": "https://github.com/Unity-Technologies/com.unity.test-framework.git",
|
|
"type": "git",
|
|
"revision": "9c6028f63a9b875e714b65de151b74e170152d49"
|
|
},
|
|
"dependencies": {
|
|
"com.unity.ext.nunit": "2.0.3",
|
|
"com.unity.modules.imgui": "1.0.0",
|
|
"com.unity.modules.jsonserialize": "1.0.0"
|
|
},
|
|
"samples": [
|
|
{
|
|
"displayName": "Exercise 1: Running Tests",
|
|
"description": "This exercise will teach you how to set up a simple Unity project with a test assembly and tests.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/1_RunningTest_Project"
|
|
},
|
|
{
|
|
"displayName": "Exercise 1: Solution",
|
|
"description": "This exercise will teach you how to set up a simple Unity project with a test assembly and tests.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/1_RunningTest_Project_Solution"
|
|
},
|
|
{
|
|
"displayName": "Exercise 2: Arrange, Act, Assert",
|
|
"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.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/2_ActArrangeAssert"
|
|
},
|
|
{
|
|
"displayName": "Exercise 2: 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.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/2_ActArrangeAssert_Solution"
|
|
},
|
|
{
|
|
"displayName": "Exercise 3: Semantic Test Assertion",
|
|
"description": "You will be introduced to the Assert.That and related classes.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/3_SemanticTestAssertion"
|
|
},
|
|
{
|
|
"displayName": "Exercise 3: Solution",
|
|
"description": "You will be introduced to the Assert.That and related classes.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/3_SemanticTestAssertion_Solution"
|
|
},
|
|
{
|
|
"displayName": "Exercise 4: Custom Comparison",
|
|
"description": "This exercise will cover the custom equality comparers included in UTF, such as Vector3EqualityComparer. These are used to assert on e.g. Vectors.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/4_CustomComparison"
|
|
},
|
|
{
|
|
"displayName": "Exercise 4: 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.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/4_CustomComparison_Solution"
|
|
},
|
|
{
|
|
"displayName": "Exercise 5: Asserting Logs",
|
|
"description": "How to test and verify code that logs to the console log.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/5_AssertingLogs"
|
|
},
|
|
{
|
|
"displayName": "Exercise 5: Solution",
|
|
"description": "How to test and verify code that logs to the console log.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/5_AssertingLogs_Solution"
|
|
},
|
|
{
|
|
"displayName": "Exercise 6: Set Up and Tear Down",
|
|
"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.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/6_SetUpTearDown"
|
|
},
|
|
{
|
|
"displayName": "Exercise 6: 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.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/6_SetUpTearDown_Solution"
|
|
},
|
|
{
|
|
"displayName": "Exercise 7: PlayMode Tests",
|
|
"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.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/7_PlayModeTests"
|
|
},
|
|
{
|
|
"displayName": "Exercise 7: 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.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/7_PlayModeTests_Solution"
|
|
},
|
|
{
|
|
"displayName": "Exercise 8: PlayMode Tests in Player",
|
|
"description": "This section will teach you how to run PlayMode tests in a Standalone player on your machine.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/8_PlayModeTests_InPlayer"
|
|
},
|
|
{
|
|
"displayName": "Exercise 9: UnityTest Attribute",
|
|
"description": "This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/9_UnityTestAttribute"
|
|
},
|
|
{
|
|
"displayName": "Exercise 9: Solution",
|
|
"description": "This section will introduce you to the custom UnityTest Attribute, which allows for creating test that runs over multiple frames.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/9_UnityTestAttribute_Solution"
|
|
},
|
|
{
|
|
"displayName": "Exercise 10: Long Running Tests",
|
|
"description": "This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/10_LongRunningTests"
|
|
},
|
|
{
|
|
"displayName": "Exercise 10: Solution",
|
|
"description": "This exercise will cover best practices and pitfalls for tests that have a long runtime, such as tests yielding back a WaitForSeconds.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/10_LongRunningTests_Solution"
|
|
},
|
|
{
|
|
"displayName": "Exercise 11: Scene Based Tests",
|
|
"description": "In this exercise, you will learn how to test content that is stored in a scene.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/11_SceneBasedTests"
|
|
},
|
|
{
|
|
"displayName": "Exercise 11: Solution",
|
|
"description": "In this exercise, you will learn how to test content that is stored in a scene.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/11_SceneBasedTests_Solution"
|
|
},
|
|
{
|
|
"displayName": "Exercise 12: Build Setup and Cleanup",
|
|
"description": "This section will introduce you to the hooks in the test framework for before and after the player build.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/12_BuildSetupCleanup"
|
|
},
|
|
{
|
|
"displayName": "Exercise 12: Solution",
|
|
"description": "This section will introduce you to the hooks in the test framework for before and after the player build.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/12_BuildSetupCleanup_Solution"
|
|
},
|
|
{
|
|
"displayName": "Exercise 13: Domain Reload",
|
|
"description": "In this section, you will learn how to invoke and wait for Domain Reloads.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/13_DomainReload"
|
|
},
|
|
{
|
|
"displayName": "Exercise 13: Solution",
|
|
"description": "In this section, you will learn how to invoke and wait for Domain Reloads.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/13_DomainReload_Solution"
|
|
},
|
|
{
|
|
"displayName": "Exercise 14: Preserve Test State",
|
|
"description": "This section will cover how to let variables and information in your tests survive domain reloads using serialization.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/14_PreserveTestState"
|
|
},
|
|
{
|
|
"displayName": "Exercise 14: Solution",
|
|
"description": "This section will cover how to let variables and information in your tests survive domain reloads using serialization.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/14_PreserveTestState_Solution"
|
|
},
|
|
{
|
|
"displayName": "Exercise 15: Test Cases",
|
|
"description": "This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/15_TestCases"
|
|
},
|
|
{
|
|
"displayName": "Exercise 15: Solution",
|
|
"description": "This section will cover [TestCase] and similar NUnit attributes and how to work with them in UnityTests.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/15_TestCases_Solution"
|
|
},
|
|
{
|
|
"displayName": "Exercise 16: Custom Attributes",
|
|
"description": "In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/16_CustomAttributes"
|
|
},
|
|
{
|
|
"displayName": "Exercise 16: Solution",
|
|
"description": "In this section we will look at some ways of implementing custom NUnit attributes, which can be used to alter test execution.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/16_CustomAttributes_Solution"
|
|
},
|
|
{
|
|
"displayName": "Exercise 17: Runnings Tests Programmatically",
|
|
"description": "This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/17_RunningTestsProgrammatically"
|
|
},
|
|
{
|
|
"displayName": "Exercise 17: Solution",
|
|
"description": "This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.",
|
|
"interactiveImport": true,
|
|
"path": "Samples~/17_RunningTestsProgrammatically_Solution"
|
|
}
|
|
],
|
|
"relatedPackages": {
|
|
"com.unity.test-framework.tests": "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."
|
|
},
|
|
"upmCi": {
|
|
"footprint": "00736a083918d6aad3399b4a646720b3530ba7e1"
|
|
},
|
|
"documentationUrl": "https://docs.unity3d.com/Packages/com.unity.test-framework@1.4/manual/index.html",
|
|
"_fingerprint": "5ac417e07314c8f6afba8109738c32b82d391e68"
|
|
}
|