TestService
The TestService is a service used by Roblox internally to run analytical tests on their engine. It makes it possible to write sophisticated tests right inside a game.
Macros
Scripts that are executed inside of the TestService (via TestService:Run()) have access to special macros that directly invoke functions under the TestService. Macros are essentially substitutions for large blocks of code that shouldn't need to be rewritten each time you want to call them.
RBX_CHECK
This macro does tests with calls to the TestService:Check() function.
Macro | Test Condition |
RBX_CHECK(cond) | cond == true |
RBX_CHECK_MESSAGE(cond, failMsg) | cond == true |
RBX_CHECK_THROW(CODE) | pcall(function() CODE end) == false |
RBX_CHECK_NO_THROW(CODE) | pcall(function() CODE end) == true |
RBX_CHECK_EQUAL(a,b) | a == b |
RBX_CHECK_NE(a,b) | a ~= b |
RBX_CHECK_GE(a,b) | a >= b |
RBX_CHECK_LE(a,b) | a <= b |
RBX_CHECK_GT(a,b) | a > b |
RBX_CHECK_LT(a,b) | a < b |
RBX_REQUIRE
This macro does tests with calls to the TestService:Require() function.
Macro | Test Condition |
RBX_REQUIRE(cond) | cond == true |
RBX_REQUIRE_MESSAGE(cond, failMsg) | cond == true |
RBX_REQUIRE_THROW(CODE) | pcall(function() CODE end) == false |
RBX_REQUIRE_NO_THROW(CODE) | pcall(function() CODE end) == true |
RBX_REQUIRE_EQUAL(a,b) | a == b |
RBX_REQUIRE_NE(a,b) | a ~= b |
RBX_REQUIRE_GE(a,b) | a >= b |
RBX_REQUIRE_LE(a,b) | a <= b |
RBX_REQUIRE_GT(a,b) | a > b |
RBX_REQUIRE_LT(a,b) | a < b |
RBX_WARN
This macro does tests with calls to the TestService:Warn() function.
Macro | Test Condition |
RBX_WARN(cond) | cond == true |
RBX_WARN_MESSAGE(cond, failMsg) | cond == true |
RBX_WARN_THROW(CODE) | pcall(function() CODE end) == false |
RBX_WARN_NO_THROW(CODE) | pcall(function() CODE end) == true |
RBX_WARN_EQUAL(a,b) | a == b |
RBX_WARN_NE(a,b) | a ~= b |
RBX_WARN_GE(a,b) | a >= b |
RBX_WARN_LE(a,b) | a <= b |
RBX_WARN_GT(a,b) | a > b |
RBX_WARN_LT(a,b) | a < b |
Additional Macros
Macro | Description |
RBX_ERROR(msg) | Directly calls the TestService:Error() function. |
RBX_FAIL(msg) | Directly calls the TestService:Fail() function. |
RBX_MESSAGE(msg) | Directly calls the TestService:Message() function. |
概要
プロパティ
If set to true, the game will start running when the TestService's TestService:Run() method is called.
A description of the test being executed.
Measures how many errors have been recorded in the test session.
When set to true, the TestService will be executed when using the Run action in Roblox Studio.
Sets whether or not the physics engine should be throttled to 30 FPS while the test is being ran.
Sets whether or not the physics environment should be throttled while running this test.
Sets whether or not physics objects will be allowed to fall asleep while the test simulation is running.
The number of players expected in this test, if any.
Sets a specific amount of additional latency experienced by players during the test session.
Measures how many test calls have been recorded in the test session.
The maximum amount of time that tests are allowed to run for.
Measures how many warning calls have been recorded in the test session.
方法
Prints result of condition to output.
Prints "Test checkpoint: ", followed by text, to the output, in blue text.
Prints Testing Done to the output, in blue text.
Prints a red message to the output, prefixed by TestService: .
Indicates a fatal error in a TestService run. If this is called inside of a script running inside of the TestService, this will initiate a breakpoint on the line that invoked the error.
Prints Test message, followed by text to the output, in blue text.
Prints whether a condition is true along with description text.
Prints if a condition is true, otherwise prints a warning.
Runs scripts which are parented to TestService.
イベント
- ServerCollectConditionalResult(condition : bool,text : string,script : Instance,line : number):RBXScriptSignal
Fired when the server should collect a conditional test result.
Fired when the server should collect a test result.
プロパティ
AutoRuns
If set to true, the game will start running when the TestService's TestService:Run() method is called.
ExecuteWithStudioRun
When set to true, the TestService will be executed when using the Run action in Roblox Studio.
Note:
- If the TestService.NumberOfPlayers property is set to a value above 0, running the game will open NumberOfPlayers + 1 studio windows, where one window is a server, and the rest are players connected to that server.
- Try to keep this value within a rational range (1 to 8 players at most), or else your computer's CPU will get overloaded.
Is30FpsThrottleEnabled
Sets whether or not the physics engine should be throttled to 30 FPS while the test is being ran.
IsPhysicsEnvironmentalThrottled
Sets whether or not the physics environment should be throttled while running this test.
IsSleepAllowed
Sets whether or not physics objects will be allowed to fall asleep while the test simulation is running.
SimulateSecondsLag
Sets a specific amount of additional latency experienced by players during the test session.
方法
Check
If condition is true, prints "Check passed: ", followed by description to the output, in blue text. Otherwise, prints "Check failed: ", again, followed by description, but in red text.
パラメータ
戻り値
コードサンプル
local TestService = game:GetService("TestService")
TestService:Check(false, "example")
Checkpoint
Prints "Test checkpoint: ", followed by text, to the output, in blue text.
パラメータ
戻り値
コードサンプル
local TestService = game:GetService("TestService")
TestService:Checkpoint("example")
Done
Prints Testing Done to the output, in blue text.
戻り値
コードサンプル
local TestService = game:GetService("TestService")
TestService:Done()
Error
Prints a red message to the output, prefixed by TestService: .
パラメータ
戻り値
コードサンプル
local TestService = game:GetService("TestService")
TestService:Error("this is an error")
Fail
Indicates a fatal error in a TestService run. If this is called inside of a script running inside of the TestService, this will initiate a breakpoint on the line that invoked the error.
パラメータ
戻り値
Message
Prints Test message, followed by text to the output, in blue text.
パラメータ
戻り値
コードサンプル
local TestService = game:GetService("TestService")
TestService:Message("example")
Require
If condition is true, prints Require passed: , followed by description, to the output in blue text. Otherwise, prints Require failed. Test ended: , followed by description, to the output in red text.
パラメータ
戻り値
コードサンプル
local TestService = game:GetService("TestService")
TestService:Require(false, "example")
Warn
If condition is true, prints Warning passed: , followed by description, to the output, in blue text. Otherwise, prints Warning: , followed by description, to the output, in yellow text.
パラメータ
戻り値
コードサンプル
local TestService = game:GetService("TestService")
TestService:Warn(false, "this action is invalid")
Run
Runs scripts which are parented to TestService.