Skip to content

Bug Fix: Missing log-directory #920

Bug Fix: Missing log-directory

Bug Fix: Missing log-directory #920

This check has been archived and is scheduled for deletion. Learn more about checks retention
GitHub Actions / DotNet Tests failed Jul 11, 2023 in 0s

DotNet Tests ❌

Tests failed

❌ src/TestResults/_fv-az360-89_2023-07-11_20_17_07.trx

438 tests were completed in 54s with 436 passed, 2 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Microsoft.PowerApps.TestEngine.Tests.Config.SingleTestInstanceStateTests 10✅ 182ms
Microsoft.PowerApps.TestEngine.Tests.Config.TestStateTests 45✅ 96ms
Microsoft.PowerApps.TestEngine.Tests.Config.YamlTestConfigParserTests 8✅ 150ms
Microsoft.PowerApps.TestEngine.Tests.ConsoleOutputTests 7✅ 15ms
Microsoft.PowerApps.TestEngine.Tests.Helpers.ExceptionHandlingHelperTest 2✅ 16ms
Microsoft.PowerApps.TestEngine.Tests.Helpers.LoggingHelpersTest 2✅ 80ms
Microsoft.PowerApps.TestEngine.Tests.Helpers.PollingHelpersTests 6✅ 6s
Microsoft.PowerApps.TestEngine.Tests.PowerApps.PowerAppFunctionsTest 113✅ 48s
Microsoft.PowerApps.TestEngine.Tests.PowerApps.PowerAppsUrlMapperTests 11✅ 18ms
Microsoft.PowerApps.TestEngine.Tests.PowerApps.PowerFXModel.ControlRecordValueTests 3✅ 71ms
Microsoft.PowerApps.TestEngine.Tests.PowerApps.PowerFXModel.ControlTableSourceTests 1✅ 1ms
Microsoft.PowerApps.TestEngine.Tests.PowerApps.PowerFXModel.ControlTableValueTests 1✅ 21ms
Microsoft.PowerApps.TestEngine.Tests.PowerApps.PowerFXModel.TypeMappingTests 6✅ 10ms
Microsoft.PowerApps.TestEngine.Tests.PowerFx.Functions.AssertFunctionTests 2✅ 16ms
Microsoft.PowerApps.TestEngine.Tests.PowerFx.Functions.AssertWithoutMessageFunctionTests 2✅ 11ms
Microsoft.PowerApps.TestEngine.Tests.PowerFx.Functions.ScreenshotFunctionTests 9✅ 30ms
Microsoft.PowerApps.TestEngine.Tests.PowerFx.Functions.SelectFunctionTests 9✅ 647ms
Microsoft.PowerApps.TestEngine.Tests.PowerFx.Functions.SetPropertyFunctionTests 8✅ 154ms
Microsoft.PowerApps.TestEngine.Tests.PowerFx.Functions.WaitFunctionTests 25✅ 11s
Microsoft.PowerApps.TestEngine.Tests.PowerFx.PowerFxEngineTests 19✅ 25s
Microsoft.PowerApps.TestEngine.Tests.PowerFx.PowerFxHelperTests 31✅ 553ms
Microsoft.PowerApps.TestEngine.Tests.Reporting.TestLoggerTests 10✅ 1❌ 46ms
Microsoft.PowerApps.TestEngine.Tests.Reporting.TestReporterTests 15✅ 352ms
Microsoft.PowerApps.TestEngine.Tests.SingleTestRunnerTests 17✅ 675ms
Microsoft.PowerApps.TestEngine.Tests.System.FileSystemTests 9✅ 3ms
Microsoft.PowerApps.TestEngine.Tests.TestEngineTests 16✅ 1❌ 461ms
Microsoft.PowerApps.TestEngine.Tests.TestInfra.PlaywrightTestInfraFunctionTests 36✅ 6s
Microsoft.PowerApps.TestEngine.Tests.Users.UserManagerTests 13✅ 2s

✅ Microsoft.PowerApps.TestEngine.Tests.Config.SingleTestInstanceStateTests

✅ SetBrowserConfigThrowsOnNullInput
✅ SetLoggerThrowsOnNullInput
✅ SetTestDefinitionThrowsOnNullInput
✅ SetTestIdThrowsOnInvalidInputTest(invalidInput: "")
✅ SetTestIdThrowsOnInvalidInputTest(invalidInput: null)
✅ SetTestResultsDirectoryThrowsOnInvalidInputTest(invalidInput: "")
✅ SetTestResultsDirectoryThrowsOnInvalidInputTest(invalidInput: null)
✅ SetTestRunIdThrowsOnInvalidInputTest(invalidInput: "")
✅ SetTestRunIdThrowsOnInvalidInputTest(invalidInput: null)
✅ SingleTestInstanceStateSuccessTest

✅ Microsoft.PowerApps.TestEngine.Tests.Config.TestStateTests

✅ ParseAndSetTestStateDoesNotThrowWhenEitherOfAppLogicalNameOrAppIdInTestSuiteDefinition(appLogicalName: "appLogicalName", appId: null)
✅ ParseAndSetTestStateDoesNotThrowWhenEitherOfAppLogicalNameOrAppIdInTestSuiteDefinition(appLogicalName: null, appId: "appId")
✅ ParseAndSetTestStateThrowsOnInvalidScreenConfigInBrowserConfigurationInTestSettings(screenWidth: 800, screenHeight: null)
✅ ParseAndSetTestStateThrowsOnInvalidScreenConfigInBrowserConfigurationInTestSettings(screenWidth: null, screenHeight: 800)
✅ ParseAndSetTestStateThrowsOnInvalidTestConfigFile(testConfigPath: "")
✅ ParseAndSetTestStateThrowsOnInvalidTestConfigFile(testConfigPath: null)
✅ ParseAndSetTestStateThrowsOnNoAppLogicalNameOrAppIdInTestSuiteDefinition(appLogicalName: "", appId: "")
✅ ParseAndSetTestStateThrowsOnNoAppLogicalNameOrAppIdInTestSuiteDefinition(appLogicalName: "", appId: null)
✅ ParseAndSetTestStateThrowsOnNoAppLogicalNameOrAppIdInTestSuiteDefinition(appLogicalName: null, appId: "")
✅ ParseAndSetTestStateThrowsOnNoAppLogicalNameOrAppIdInTestSuiteDefinition(appLogicalName: null, appId: null)
✅ ParseAndSetTestStateThrowsOnNoBrowserConfigurationInTestSettings
✅ ParseAndSetTestStateThrowsOnNoBrowserInBrowserConfigurationInTestSettings(browser: "")
✅ ParseAndSetTestStateThrowsOnNoBrowserInBrowserConfigurationInTestSettings(browser: null)
✅ ParseAndSetTestStateThrowsOnNoEmailKeyInUserConfigurationInEnvironmentVariables(emailKey: "")
✅ ParseAndSetTestStateThrowsOnNoEmailKeyInUserConfigurationInEnvironmentVariables(emailKey: null)
✅ ParseAndSetTestStateThrowsOnNoEnvironmentVariables
✅ ParseAndSetTestStateThrowsOnNoNameInTestSuiteDefinition(testName: "")
✅ ParseAndSetTestStateThrowsOnNoNameInTestSuiteDefinition(testName: null)
✅ ParseAndSetTestStateThrowsOnNoPasswordKeyInUserConfigurationInEnvironmentVariables(passwordKey: "")
✅ ParseAndSetTestStateThrowsOnNoPasswordKeyInUserConfigurationInEnvironmentVariables(passwordKey: null)
✅ ParseAndSetTestStateThrowsOnNoPersonaInTestSuiteDefinition(persona: "")
✅ ParseAndSetTestStateThrowsOnNoPersonaInTestSuiteDefinition(persona: null)
✅ ParseAndSetTestStateThrowsOnNoPersonaNameInUserConfigurationInEnvironmentVariables(personaName: "")
✅ ParseAndSetTestStateThrowsOnNoPersonaNameInUserConfigurationInEnvironmentVariables(personaName: null)
✅ ParseAndSetTestStateThrowsOnNoTestCaseInTestSuiteDefinition
✅ ParseAndSetTestStateThrowsOnNoTestCaseNameInTestCase(testCaseName: "")
✅ ParseAndSetTestStateThrowsOnNoTestCaseNameInTestCase(testCaseName: null)
✅ ParseAndSetTestStateThrowsOnNoTestSettings
✅ ParseAndSetTestStateThrowsOnNoTestStepsInTestCase(testSteps: "")
✅ ParseAndSetTestStateThrowsOnNoTestStepsInTestCase(testSteps: null)
✅ ParseAndSetTestStateThrowsOnNoTestSuiteDefinition
✅ ParseAndSetTestStateThrowsOnNoUserConfigurationInEnvironmentVariables
✅ ParseAndSetTestStateThrowsOnNullBrowserConfigurationInTestSettings
✅ ParseAndSetTestStateThrowsOnNullUserConfigurationInEnvironmentVariables
✅ ParseAndSetTestStateThrowsOnTestSuiteDefinitionUserNotDefined
✅ SetDomainThrowsOnNullInput(domain: "")
✅ SetDomainThrowsOnNullInput(domain: null)
✅ SetEnvironmentThrowsOnNullInput(environment: "")
✅ SetEnvironmentThrowsOnNullInput(environment: null)
✅ SetOutputDirectoryThrowsOnNullInput(outputDirectory: "")
✅ SetOutputDirectoryThrowsOnNullInput(outputDirectory: null)
✅ SetTenantThrowsOnNullInput(tenant: "")
✅ SetTenantThrowsOnNullInput(tenant: null)
✅ TestStateSuccessOnFilePathTest
✅ TestStateSuccessTest

✅ Microsoft.PowerApps.TestEngine.Tests.Config.YamlTestConfigParserTests

✅ YamlTestConfigParserParseEnvironmentVariablesTest
✅ YamlTestConfigParserParseTestPlanWithAppIDTest
✅ YamlTestConfigParserParseTestPlanWithAppLogicalNameTest
✅ YamlTestConfigParserParseTestPlanWithLocaleTest
✅ YamlTestConfigParserParseTestSettingsTest
✅ YamlTestConfigParserParseTestSettingsWithLocaleTest
✅ YamlTestConfigParserThrowsOnNullArguments(filePath: "")
✅ YamlTestConfigParserThrowsOnNullArguments(filePath: null)

✅ Microsoft.PowerApps.TestEngine.Tests.ConsoleOutputTests

✅ TestEncounteredException
✅ TestMultipleBrowserRuns
✅ TestSuiteBegin
✅ TestSuiteEnd
✅ TestTestCaseBegin
✅ TestTestCaseEndFailed
✅ TestTestCaseEndPassed

✅ Microsoft.PowerApps.TestEngine.Tests.Helpers.ExceptionHandlingHelperTest

✅ CheckIfOutDatedPublishedAppFalse
✅ CheckIfOutDatedPublishedAppTrue

✅ Microsoft.PowerApps.TestEngine.Tests.Helpers.LoggingHelpersTest

✅ DebugInfoNullSessionTest
✅ DebugInfoWithSessionTest

✅ Microsoft.PowerApps.TestEngine.Tests.Helpers.PollingHelpersTests

✅ PollingAsyncSucceedsTest
✅ PollingAsyncThrowsOnInvalidArgumentsTest
✅ PollingAsyncTimeoutTest
✅ PollingSucceedsTest
✅ PollingThrowsOnInvalidArgumentsTest
✅ PollingTimeoutTest

✅ Microsoft.PowerApps.TestEngine.Tests.PowerApps.PowerAppFunctionsTest

✅ GetDebugInfoReturnsNull
✅ GetDebugInfoReturnsObject
✅ GetItemCountAsyncNoPublishedAppFunction
✅ GetItemCountTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"..., expectedOutput: 1)
✅ GetItemCountTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"..., expectedOutput: 2)
✅ GetItemCountTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"..., expectedOutput: 3)
✅ GetItemCountTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"..., expectedOutput: 4)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"\",\"index\":null,\"parentContr"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"\",\"index\":null,\"parentContr"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"\",\"index\":null,\"parentContr"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"\",\"index\":null,\"parentContr"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":null,\"index\":null,\"parentContr"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":null,\"index\":null,\"parentContr"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":null,\"index\":null,\"parentContr"...)
✅ GetItemCountThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":null,\"index\":null,\"parentContr"...)
✅ GetPropertyAsyncNoPublishedAppFunction
✅ GetPropertyValueFromControlTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"..., expectedOutput: "012")
✅ GetPropertyValueFromControlTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"..., expectedOutput: "123")
✅ GetPropertyValueFromControlTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"..., expectedOutput: "456")
✅ GetPropertyValueFromControlTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"..., expectedOutput: "789")
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"\",\"index\":null,\"parentContr"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"\",\"index\":null,\"parentContr"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"\",\"index\":null,\"parentContr"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"\",\"index\":null,\"parentContr"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Label1\",\"index\":null,\"paren"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":null,\"index\":null,\"parentContr"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":null,\"index\":null,\"parentContr"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":null,\"index\":null,\"parentContr"...)
✅ GetPropertyValueFromControlThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":null,\"index\":null,\"parentContr"...)
✅ LoadPowerAppsObjectModelAsyncEmbedJSDefined
✅ LoadPowerAppsObjectModelAsyncEmbedJSUndefined
✅ LoadPowerAppsObjectModelAsyncNoPublishedAppFunction
✅ LoadPowerAppsObjectModelAsyncTest
✅ LoadPowerAppsObjectModelAsyncWaitsForAppToLoad
✅ LoadPowerAppsObjectModelAsyncWaitsForAppToLoadWithExceptions
✅ LoadPowerAppsObjectModelAsyncWithDuplicatesDoesNotThrowTest
✅ LoadPowerAppsObjectModelAsyncWithNoModelTest(jsObjectModelString: "")
✅ LoadPowerAppsObjectModelAsyncWithNoModelTest(jsObjectModelString: "{ controls: [] }")
✅ LoadPowerAppsObjectModelAsyncWithNoModelTest(jsObjectModelString: "{}")
✅ LoadPowerAppsObjectModelAsyncWithNoModelTest(jsObjectModelString: null)
✅ SelectControlAsyncFailsNoPublishedAppFunction
✅ SelectControlAsyncTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"..., expectedOutput: False)
✅ SelectControlAsyncTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"..., expectedOutput: False)
✅ SelectControlAsyncTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"..., expectedOutput: True)
✅ SelectControlAsyncTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"..., expectedOutput: True)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"\",\"index\":null,\"parentContr"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"\",\"index\":null,\"parentContr"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"\",\"index\":null,\"parentContr"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"\",\"index\":null,\"parentContr"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":\"Button1\",\"index\":null,\"pare"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":null,\"index\":null,\"parentContr"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":null,\"index\":null,\"parentContr"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":null,\"index\":null,\"parentContr"...)
✅ SelectControlAsyncThrowsOnInvalidInputTest(itemPathString: "{\"controlName\":null,\"index\":null,\"parentContr"...)
✅ SetPropertyAsyncItemPathTest
✅ SetPropertyAsyncThrowsOnInvalidFormulaValueTest
✅ SetPropertyBooleanAsyncTest
✅ SetPropertyDateAsyncNoPublishedAppFunction
✅ SetPropertyDateAsyncTest
✅ SetPropertyNumberAsyncTest
✅ SetPropertyRecordAsyncNoPublishedAppFunction
✅ SetPropertyRecordAsyncTest
✅ SetPropertyStringAsyncTest
✅ SetPropertyTableAsyncNoPublishedAppFunction
✅ SetPropertyTableAsyncTest

✅ Microsoft.PowerApps.TestEngine.Tests.PowerApps.PowerAppsUrlMapperTests

✅ GenerateAppUrlTest(environmentId: "defaultEnvironment", domain: "apps.powerapps.com", appLogicalName: null, appId: "appId", tenantId: "defaultTenant", expectedAppUrl: "https://apps.powerapps.com/play/e/defaultEnvironme"..., queryParams: "")
✅ GenerateAppUrlTest(environmentId: "defaultEnvironment", domain: "apps.test.powerapps.com", appLogicalName: "defaultApp", appId: "appId", tenantId: "defaultTenant", expectedAppUrl: "https://apps.test.powerapps.com/play/e/defaultEnvi"..., queryParams: "")
✅ GenerateAppUrlTest(environmentId: "myEnvironment", domain: "apps.powerapps.com", appLogicalName: "myApp", appId: "appId", tenantId: "myTenant", expectedAppUrl: "https://apps.powerapps.com/play/e/myEnvironment/an"..., queryParams: "")
✅ GenerateAppUrlTest(environmentId: "myEnvironment", domain: "apps.powerapps.com", appLogicalName: "myApp", appId: "appId", tenantId: "myTenant", expectedAppUrl: "https://apps.powerapps.com/play/e/myEnvironment/an"..., queryParams: "&enablePATest=true&patestSDKVersion=0.0.1")
✅ GenerateLoginUrlThrowsOnInvalidSetupTest(environmentId: "", appLogicalName: "appLogicalName", appId: "appId", tenantId: "tenantId")
✅ GenerateLoginUrlThrowsOnInvalidSetupTest(environmentId: "environmentId", appLogicalName: "", appId: "", tenantId: "tenantId")
✅ GenerateLoginUrlThrowsOnInvalidSetupTest(environmentId: "environmentId", appLogicalName: "appLogicalName", appId: "appId", tenantId: "")
✅ GenerateLoginUrlThrowsOnInvalidSetupTest(environmentId: "environmentId", appLogicalName: "appLogicalName", appId: "appId", tenantId: null)
✅ GenerateLoginUrlThrowsOnInvalidSetupTest(environmentId: "environmentId", appLogicalName: null, appId: null, tenantId: "tenantId")
✅ GenerateLoginUrlThrowsOnInvalidSetupTest(environmentId: null, appLogicalName: "appLogicalName", appId: "appId", tenantId: "tenantId")
✅ GenerateLoginUrlThrowsOnInvalidTestDefinitionTest

✅ Microsoft.PowerApps.TestEngine.Tests.PowerApps.PowerFXModel.ControlRecordValueTests

✅ ComponentsControlRecordValueTest
✅ GalleryControlRecordValueTest
✅ SimpleControlRecordValueTest

✅ Microsoft.PowerApps.TestEngine.Tests.PowerApps.PowerFXModel.ControlTableSourceTests

✅ TableSourceTest

✅ Microsoft.PowerApps.TestEngine.Tests.PowerApps.PowerFXModel.ControlTableValueTests

✅ TableTest

✅ Microsoft.PowerApps.TestEngine.Tests.PowerApps.PowerFXModel.TypeMappingTests

✅ GetComplexTypeWithMissingSubType
✅ GetRecordTypeTest
✅ GetTableTypeTest
✅ GetTypeThatWasAddedTest
✅ TryGetTypeFailsForNonExistentTypeTest
✅ TypeMappingSetsUpDefaultTypes

✅ Microsoft.PowerApps.TestEngine.Tests.PowerFx.Functions.AssertFunctionTests

✅ AssertFunctionSucceedsOnFalseTest
✅ AssertFunctionSucceedsOnTrueTest

✅ Microsoft.PowerApps.TestEngine.Tests.PowerFx.Functions.AssertWithoutMessageFunctionTests

✅ AssertFunctionSucceedsOnFalseTest
✅ AssertFunctionSucceedsOnTrueTest

✅ Microsoft.PowerApps.TestEngine.Tests.PowerFx.Functions.ScreenshotFunctionTests

✅ ScreenshotFunctionTest(screenshotName: "screenshot.jpeg")
✅ ScreenshotFunctionTest(screenshotName: "screenshot.jpg")
✅ ScreenshotFunctionTest(screenshotName: "screenshot.png")
✅ ScreenshotFunctionThrowsOnInvalidResultDirectoryTest
✅ ScreenshotFunctionThrowsOnInvalidScreenshotNameTest(screenshotName: "")
✅ ScreenshotFunctionThrowsOnInvalidScreenshotNameTest(screenshotName: "C:\\folder")
✅ ScreenshotFunctionThrowsOnInvalidScreenshotNameTest(screenshotName: "test.img")
✅ ScreenshotFunctionThrowsOnInvalidScreenshotNameTest(screenshotName: "test.txt")
✅ ScreenshotFunctionThrowsOnNonRelativeFilePathTest

✅ Microsoft.PowerApps.TestEngine.Tests.PowerFx.Functions.SelectFunctionTests

✅ SelectFunctionThrowsOnNonPowerAppsRecordValuetTest
✅ SelectFunctionThrowsOnNullObjectTest
✅ SelectGalleryTest
✅ SelectOneParamFunctionFailsTest
✅ SelectOneParamFunctionTest
✅ SelectThreeParamFunctionFailsTest
✅ SelectThreeParamFunctionTest
✅ SelectTwoParamFunctionFailsTest
✅ SelectTwoParamFunctionTest

✅ Microsoft.PowerApps.TestEngine.Tests.PowerFx.Functions.SetPropertyFunctionTests

✅ SetPropertyBooleanFunctionTest
✅ SetPropertyDateFunctionTest
✅ SetPropertyFunctionFailsTest
✅ SetPropertyFunctionThrowsOnNonPowerAppsRecordValueTest
✅ SetPropertyNumberFunctionTest
✅ SetPropertyRecordFunctionTest
✅ SetPropertyStringFunctionTest
✅ SetPropertyTableFunctionTest

✅ Microsoft.PowerApps.TestEngine.Tests.PowerFx.Functions.WaitFunctionTests

✅ WaitFunctionBooleanSucceedsTest
✅ WaitFunctionBooleanThrowsOnInvalidArgumentsTest
✅ WaitFunctionBooleanTimeoutTest
✅ WaitFunctionBooleanWaitsForValueToUpdateTest
✅ WaitFunctionDate_DateTimeValueSucceedsTest
✅ WaitFunctionDate_DateValueSucceedsTest
✅ WaitFunctionDateThrowsOnInvalidArgumentsTest
✅ WaitFunctionDateTime_DateTimeValueSucceedsTest
✅ WaitFunctionDateTime_DateValueSucceedsTest
✅ WaitFunctionDateTimeoutTest
✅ WaitFunctionDateTimeTimeoutTest
✅ WaitFunctionDateTimeWaitsForValueToUpdateTest
✅ WaitFunctionDateWaitsForValueToUpdateTest
✅ WaitFunctionImproperValueForBooleanTest
✅ WaitFunctionImproperValueForDateTest
✅ WaitFunctionImproperValueForNumberTest
✅ WaitFunctionImproperValueForStringTest
✅ WaitFunctionNumberSucceedsTest
✅ WaitFunctionNumberThrowsOnInvalidArgumentsTest
✅ WaitFunctionNumberTimeoutTest
✅ WaitFunctionNumberWaitsForValueToUpdateTest
✅ WaitFunctionStringSucceedsTest
✅ WaitFunctionStringThrowsOnInvalidArgumentsTest
✅ WaitFunctionStringTimeoutTest
✅ WaitFunctionStringWaitsForValueToUpdateTest

✅ Microsoft.PowerApps.TestEngine.Tests.PowerFx.PowerFxEngineTests

✅ ExecuteAssertFunctionTest
✅ ExecuteFailsWhenPowerFXThrowsTest
✅ ExecuteFailsWhenUsingNonExistentVariableTest
✅ ExecuteMultipleFunctionsTest
✅ ExecuteOneFunctionTest
✅ ExecuteScreenshotFunctionTest
✅ ExecuteSelectFunctionFailingTest
✅ ExecuteSelectFunctionTest
✅ ExecuteSelectFunctionThrowsOnDifferentRecordTypeTest
✅ ExecuteSetPropertyFunctionTest
✅ ExecuteSetPropertyFunctionThrowsOnDifferentRecordTypeTest
✅ ExecuteThrowsOnNoSetupTest
✅ ExecuteWaitFunctionTest
✅ ExecuteWaitFunctionThrowsOnDifferentRecordTypeTest
✅ ExecuteWithVariablesTest
✅ SetupDoesNotThrow
✅ TestStepByStep
✅ UpdatePowerFxModelAsyncThrowsOnCantGetAppStatusTest
✅ UpdatePowerFxModelAsyncThrowsOnNoSetupTest

✅ Microsoft.PowerApps.TestEngine.Tests.PowerFx.PowerFxHelperTests

✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: ";;;;", expectedFormulas: ["", "", "", ""])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "'Test;;2333';Max(1;'Button1;Button2';23;/*\n\n;;Co"..., expectedFormulas: ["'Test;;2333'", "Max(1;'Button1;Button2';23;/*\n\n;;Comment\n\n*/33"...])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "'Test;;2333';Max(1;'Button1;Button2';23;/*\n\n;;Co"..., expectedFormulas: ["'Test;;2333'", "Max(1;'Button1;Button2';23;/*\n\n;;Comment\n\n33,1"...])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "'Test;2212", expectedFormulas: ["'Test;2212"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "", expectedFormulas: [])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "##Max(1;2;Max(22;34;Sum(1;>?2,2)), 40);1+1;/*Comme"..., expectedFormulas: ["##Max(1", "2", "Max(22", "34", "Sum(1", ...])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "$\";{1;2;3;Max(1;2;30,40)}\";Max(1;20;3)", expectedFormulas: ["$\";{1;2;3;Max(1;2;30,40)}\"", "Max(1;20;3)"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "$\";{1;2;3;Max(1;2;30#########<>><>>#3,40)}\";Max("..., expectedFormulas: ["$\";{1;2;3;Max(1;2;30#########<>><>>#3,40)}\"", "Max(1;20;3)"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "$\";{1;2;3;Max(1;2;30#########<>><>>#3,40)}\"", expectedFormulas: ["$\";{1;2;3;Max(1;2;30#########<>><>>#3,40)}\""])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "1 + 2", expectedFormulas: ["1 + 2"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "1;;;2;;", expectedFormulas: ["1", "", "", "2", ""])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "1#1;/*comment;;*/2+2", expectedFormulas: ["1#1", "/*comment;;*/2+2"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "1+1;/*comment;;*/2+2", expectedFormulas: ["1+1", "/*comment;;*/2+2"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "Max(;;;1,2)", expectedFormulas: ["Max(;;;1,2)"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "Max(;22)", expectedFormulas: ["Max(", "22)"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "Max(1;2;3)", expectedFormulas: ["Max(1;2;3)"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "Max(1;2;Max(22;34;Sum(1;>?2,2)), 40);1+1;/*Comment"..., expectedFormulas: ["Max(1;2;Max(22;34;Sum(1;>?2,2)), 40)", "1+1", "/*Comment;*/"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "Max(1;2;Max(22;34;Sum(1;2,2)), 40);1+1;/*Comment;*"..., expectedFormulas: ["Max(1;2;Max(22;34;Sum(1;2,2)), 40)", "1+1", "/*Comment;*/"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "Select(Button1);Assert(Button1.Text=\"semicolons;;"..., expectedFormulas: ["Select(Button1)", "Assert(Button1.Text=\"semicolons;;;;semicolons\")", "1+2", "Max(1;2;3)"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "Select(Button1)", expectedFormulas: ["Select(Button1)"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "en-US", expression: "Select(Button1/*Selecting button 1;;;*/);Assert(Bu"..., expectedFormulas: ["Select(Button1/*Selecting button 1;;;*/)", "Assert(Button1.Text = Text(\"Ab\";\"Abcd\"))"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "fr", expression: ";;", expectedFormulas: [""])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "fr", expression: "\"string \n;;String\";;1+2\n\n\n;;Max(\n1;2;\n3);;", expectedFormulas: ["\"string \n;;String\"", "1+2\n\n\n", "Max(\n1;2;\n3)"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "fr", expression: "$\";;;;{1;;2;;\n\n3;;Max(1;;2;;30,3;40)}\"\n\n\n;;"..., expectedFormulas: ["$\";;;;{1;;2;;\n\n3;;Max(1;;2;;30,3;40)}\"\n\n\n", "Max(1;;20;;3)", "1+1"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "fr", expression: "1;;;;2", expectedFormulas: ["1", "", "2"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "fr", expression: "1#1;2+2;;/*comment;;*/3+3;;Max(1;2;3)", expectedFormulas: ["1#1;2+2", "/*comment;;*/3+3", "Max(1;2;3)"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "fr", expression: "Max(1;;2;;3;30;;Max(230;;23;;33);;3);;Select(Butto"..., expectedFormulas: ["Max(1;;2;;3;30;;Max(230;;23;;33);;3)", "Select(Button1;;Button2;;Button3;;;;", ")"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "fr", expression: "Max(1;;2;;3;30;;Max(230;;23;;33);;3);;Select(Butto"..., expectedFormulas: ["Max(1;;2;;3;30;;Max(230;;23;;33);;3)", "Select(Button1;;Button2;;Button3)"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "fr", expression: "Max(1;;2;;3;30;;Max(230;;23;;33);;3)", expectedFormulas: ["Max(1;;2;;3;30;;Max(230;;23;;33);;3)"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "fr", expression: "Select(Button1);;Assert(Button1.Text=\"semicolons;"..., expectedFormulas: ["Select(Button1)", "Assert(Button1.Text=\"semicolons;;;;semicolons\")", "1+2", "Max(1,2,3)"])
✅ TestFormulasSeparatedByChainingOpAreExtractedCorrectly(locale: "it", expression: "$\";;;;{1;;2;;3;;;;Max(1;;2;;;;30,3;40)}\";;;;", expectedFormulas: ["$\";;;;{1;;2;;3;;;;Max(1;;2;;;;30,3;40)}\"", ""])

❌ Microsoft.PowerApps.TestEngine.Tests.Reporting.TestLoggerTests

✅ BeginScopeThrowsIfScopeAlreadyBegunTest
✅ BeginScopeThrowsOnInvalidInputTest
✅ IsEnabledTest(level: Critical, shouldBeEnabled: True)
✅ IsEnabledTest(level: Debug, shouldBeEnabled: True)
✅ IsEnabledTest(level: Error, shouldBeEnabled: True)
✅ IsEnabledTest(level: Information, shouldBeEnabled: True)
✅ IsEnabledTest(level: None, shouldBeEnabled: True)
✅ IsEnabledTest(level: Trace, shouldBeEnabled: True)
✅ IsEnabledTest(level: Warning, shouldBeEnabled: True)
✅ LoggerTest
❌ WriteToLogsFileThrowsOnInvalidPathTest
	Assert.Throws() Failure
	Expected: typeof(System.ArgumentException)
	Actual:   typeof(Moq.MockException): IFileSystem.Exists("/home/runner/work/PowerApps-TestEngine/PowerApps-TestEngine/bin/Debug/Microsoft.PowerApps.TestEngine.Tests/logs") invocation failed with mock behavior Strict.
	All invocations on the mock must have a corresponding setup.
	---- Moq.MockException : IFileSystem.Exists("/home/runner/work/PowerApps-TestEngine/PowerApps-TestEngine/bin/Debug/Microsoft.PowerApps.TestEngine.Tests/logs") invocation failed with mock behavior Strict.
	All invocations on the mock must have a corresponding setup.

✅ Microsoft.PowerApps.TestEngine.Tests.Reporting.TestReporterTests

✅ CreateTestRunTest
✅ CreateTestSuiteTest
✅ CreateTestTest
✅ EndTestRunTest
✅ EndTestTest(success: False, stdout: "some logs", additionalFiles: [], errorMessage: null)
✅ EndTestTest(success: True, stdout: "some logs", additionalFiles: ["file1.txt", "file2.txt", "file3.txt"], errorMessage: null)
✅ EndTestTest(success: True, stdout: "some logs", additionalFiles: [], errorMessage: "error message")
✅ EndTestTest(success: True, stdout: "some logs", additionalFiles: [], errorMessage: null)
✅ FailTestTest
✅ GenerateTestReportTest
✅ StartTestRunTest
✅ StartTestTest
✅ ThrowsOnInvalidTestRunIdTest(testRunId: "")
✅ ThrowsOnInvalidTestRunIdTest(testRunId: "nonexistentid")
✅ ThrowsOnInvalidTestRunIdTest(testRunId: null)

✅ Microsoft.PowerApps.TestEngine.Tests.SingleTestRunnerTests

✅ CreateDirectoryThrowsTest
✅ GenerateAppUrlThrowsTest
✅ GoToUrlThrowsTest
✅ LoginAsUserThrowsTest
✅ PowerFxExecuteThrowsTest
✅ PowerFxSetupThrowsTest
✅ PowerFxUpdatePowerFxModelAsyncThrowsTest
✅ SetupNetworkRequestMockThrowsTest
✅ SingleTestRunnerCanOnlyBeRunOnce
✅ SingleTestRunnerPowerFxTestFail
✅ SingleTestRunnerSuccessWithTestDataOneTest(additionalFiles: ["/logs.txt", "/screenshot1.png", "/screenshot2.png"])
✅ SingleTestRunnerSuccessWithTestDataOneTest(additionalFiles: [])
✅ SingleTestRunnerSuccessWithTestDataOneTest(additionalFiles: null)
✅ SingleTestRunnerSuccessWithTestDataTwoTest(additionalFiles: ["/logs.txt", "/screenshot1.png", "/screenshot2.png"])
✅ SingleTestRunnerSuccessWithTestDataTwoTest(additionalFiles: [])
✅ SingleTestRunnerSuccessWithTestDataTwoTest(additionalFiles: null)
✅ TestInfraSetupThrowsTest

✅ Microsoft.PowerApps.TestEngine.Tests.System.FileSystemTests

✅ IsValidFilePathTest(filePath: "", expectedResult: False)
✅ IsValidFilePathTest(filePath: "C:/fold:er", expectedResult: False)
✅ IsValidFilePathTest(filePath: "C:/folder/file.txt", expectedResult: True)
✅ IsValidFilePathTest(filePath: "C:\\folder", expectedResult: True)
✅ IsValidFilePathTest(filePath: "C:\\folder\\file", expectedResult: True)
✅ IsValidFilePathTest(filePath: "file.txt", expectedResult: True)
✅ IsValidFilePathTest(filePath: null, expectedResult: False)
✅ RemoveInvalidFileNameCharsTest(inputFileName: "", expectedFileName: "")
✅ RemoveInvalidFileNameCharsTest(inputFileName: "file.txt", expectedFileName: "file.txt")

❌ Microsoft.PowerApps.TestEngine.Tests.TestEngineTests

✅ TestEngineTest(outputDirectory: C:\testResults, domain: "GCC", testSettings: TestSettings { BrowserConfigurations = [BrowserConfiguration { ... }], EnablePowerFxOverlay = False, FilePath = null, Headless = True, Locale = "", ... }, testSuiteDefinition: TestSuiteDefinition { AppId = "", AppLogicalName = "logicalAppName1", NetworkRequestMocks = null, OnTestCaseComplete = null, OnTestCaseStart = null, ... })
✅ TestEngineTest(outputDirectory: C:\testResults, domain: "GCC", testSettings: TestSettings { BrowserConfigurations = [BrowserConfiguration { ... }], EnablePowerFxOverlay = False, FilePath = null, Headless = True, Locale = "de-DE", ... }, testSuiteDefinition: TestSuiteDefinition { AppId = "", AppLogicalName = "logicalAppName1", NetworkRequestMocks = null, OnTestCaseComplete = null, OnTestCaseStart = null, ... })
✅ TestEngineTest(outputDirectory: C:\testResults, domain: "GCC", testSettings: TestSettings { BrowserConfigurations = [BrowserConfiguration { ... }], EnablePowerFxOverlay = False, FilePath = null, Headless = True, Locale = "en-US", ... }, testSuiteDefinition: TestSuiteDefinition { AppId = "", AppLogicalName = "logicalAppName1", NetworkRequestMocks = null, OnTestCaseComplete = null, OnTestCaseStart = null, ... })
✅ TestEngineTest(outputDirectory: C:\testResults, domain: "Prod", testSettings: TestSettings { BrowserConfigurations = [BrowserConfiguration { ... }, BrowserConfiguration { ... }, BrowserConfiguration { ... }], EnablePowerFxOverlay = False, FilePath = null, Headless = True, Locale = "", ... }, testSuiteDefinition: TestSuiteDefinition { AppId = "", AppLogicalName = "logicalAppName1", NetworkRequestMocks = null, OnTestCaseComplete = null, OnTestCaseStart = null, ... })
✅ TestEngineTest(outputDirectory: C:\testResults, domain: "Prod", testSettings: TestSettings { BrowserConfigurations = [BrowserConfiguration { ... }, BrowserConfiguration { ... }, BrowserConfiguration { ... }], EnablePowerFxOverlay = False, FilePath = null, Headless = True, Locale = "", ... }, testSuiteDefinition: TestSuiteDefinition { AppId = "", AppLogicalName = "logicalAppName1", NetworkRequestMocks = null, OnTestCaseComplete = null, OnTestCaseStart = null, ... })
✅ TestEngineTest(outputDirectory: C:\testResults, domain: "Prod", testSettings: TestSettings { BrowserConfigurations = [BrowserConfiguration { ... }], EnablePowerFxOverlay = False, FilePath = null, Headless = True, Locale = "", ... }, testSuiteDefinition: TestSuiteDefinition { AppId = "", AppLogicalName = "logicalAppName1", NetworkRequestMocks = null, OnTestCaseComplete = null, OnTestCaseStart = null, ... })
✅ TestEngineTest(outputDirectory: TestOutput, domain: "", testSettings: TestSettings { BrowserConfigurations = [BrowserConfiguration { ... }], EnablePowerFxOverlay = False, FilePath = null, Headless = True, Locale = "", ... }, testSuiteDefinition: TestSuiteDefinition { AppId = "", AppLogicalName = "logicalAppName1", NetworkRequestMocks = null, OnTestCaseComplete = null, OnTestCaseStart = null, ... })
✅ TestEngineTest(outputDirectory: TestOutput, domain: null, testSettings: TestSettings { BrowserConfigurations = [BrowserConfiguration { ... }], EnablePowerFxOverlay = False, FilePath = null, Headless = True, Locale = "", ... }, testSuiteDefinition: TestSuiteDefinition { AppId = "", AppLogicalName = "logicalAppName1", NetworkRequestMocks = null, OnTestCaseComplete = null, OnTestCaseStart = null, ... })
✅ TestEngineThrowsOnNullArguments(testConfigFilePath: "C:\\testPlan.fx.yaml", environmentId: "", tenantId: "a01af035-a529-4aaf-aded-011ad676f976", domain: "apps.powerapps.com")
✅ TestEngineThrowsOnNullArguments(testConfigFilePath: "C:\\testPlan.fx.yaml", environmentId: "Default-EnvironmentId", tenantId: "00000000-0000-0000-0000-000000000000", domain: "apps.powerapps.com")
✅ TestEngineThrowsOnNullArguments(testConfigFilePath: "C:\\testPlan.fx.yaml", environmentId: "Default-EnvironmentId", tenantId: "a01af035-a529-4aaf-aded-011ad676f976", domain: "")
✅ TestEngineThrowsOnNullArguments(testConfigFilePath: null, environmentId: "Default-EnvironmentId", tenantId: "a01af035-a529-4aaf-aded-011ad676f976", domain: "apps.powerapps.com")
✅ TestEngineWithDefaultParamsTest
❌ TestEngineWithIncorrectOutputDirectoryTest
	Moq.MockException : 
	Expected invocation on the mock once, but was 0 times: x => x.Log<It.IsAnyType>(It.Is<LogLevel>(l => False || (int?)l == 0), It.IsAny<EventId>(), It.Is<It.IsAnyType>((v, t) => Func<object, Type, bool>(v, t)), It.IsAny<Exception>(), It.Is<Func<It.IsAnyType, Exception, string>>((v, t) => True))
	
	Performed invocations:
	
	   Mock<ILogger:26> (x):
	
	      ILogger.Log<FormattedLogValues>(LogLevel.Debug, 0, Using no additional query parameters., null, Func<FormattedLogValues, Exception, string>)
	      ILogger.Log<FormattedLogValues>(LogLevel.Debug, 0, Using domain: apps.powerapps.com, null, Func<FormattedLogValues, Exception, string>)
	      ILogger.Log<FormattedLogValues>(LogLevel.Debug, 0, Using output directory: /home/runner/work/PowerApps-TestEngine/PowerApps-TestEngine/bin/Debug/Microsoft.PowerApps.TestEngine.Tests/C:\invalidTestDirectory, null, Func<FormattedLogValues, Exception, string>)
	      ILogger.Log<FormattedLogValues>(LogLevel.Information, 0, Test results will be stored in: /home/runner/work/PowerApps-TestEngine/PowerApps-TestEngine/bin/Debug/Microsoft.PowerApps.TestEngine.Tests/C:\invalidTestDirectory/dc5b82, null, Func<FormattedLogValues, Exception, string>)
	      ILogger.Log<FormattedLogValues>(LogLevel.Debug, 0, Locale: en-US, null, Func<FormattedLogValues, Exception, string>)
	
✅ TestEngineWithInvalidLocaleTest
✅ TestEngineWithMultipleBrowserConfigTest
✅ TestEngineWithUnspecifiedLocaleShowsWarning

✅ Microsoft.PowerApps.TestEngine.Tests.TestInfra.PlaywrightTestInfraFunctionTests

✅ AddScriptTagSuccessfulTest
✅ AddScriptTagToFrameSuccessfulTest
✅ ClickAsyncSuccessfulTest
✅ EndTestRunSuccessTest
✅ FillAsyncSuccessfulTest
✅ GoToUrlTest
✅ GoToUrlThrowsOnInvalidUrlTest(url: "")
✅ GoToUrlThrowsOnInvalidUrlTest(url: "file://c:/test.txt")
✅ GoToUrlThrowsOnInvalidUrlTest(url: "hi")
✅ GoToUrlThrowsOnInvalidUrlTest(url: "www.microsoft.com")
✅ GoToUrlThrowsOnInvalidUrlTest(url: null)
✅ GoToUrlThrowsOnUnsuccessfulResponseTest
✅ HandleUserPasswordScreen
✅ HandleUserPasswordScreenErrorEntry
✅ HandleUserPasswordScreenUnknownError
✅ PageFunctionsThrowOnNullPageTest
✅ RouteNetworkRequestTest
✅ RunJavascriptSuccessfulTest
✅ ScreenshotSuccessfulTest
✅ ScreenshotThrowsOnInvalidScreenshotFilePath
✅ SetupAsyncTest(browser: "Chromium", device: "Pixel 2", screenWidth: null, screenHeight: null)
✅ SetupAsyncTest(browser: "Chromium", device: null, screenWidth: null, screenHeight: null)
✅ SetupAsyncTest(browser: "Safari", device: "iPhone 8", screenWidth: 400, screenHeight: 800)
✅ SetupAsyncTest(browser: "Safari", device: "iPhone 8", screenWidth: 400, screenHeight: null)
✅ SetupAsyncThrowsOnInvalidBrowserTest(browser: "")
✅ SetupAsyncThrowsOnInvalidBrowserTest(browser: "Chrome")
✅ SetupAsyncThrowsOnInvalidBrowserTest(browser: "INVALID_BROWSER_NAME")
✅ SetupAsyncThrowsOnInvalidBrowserTest(browser: "Safari")
✅ SetupAsyncThrowsOnInvalidBrowserTest(browser: null)
✅ SetupAsyncThrowsOnNullBrowserConfigTest
✅ SetupAsyncThrowsOnNullTestSettingsTest
✅ SetupNetworkRequestMockAsyncNullMockSkipTest
✅ SetupNetworkRequestMockAsyncTest
✅ SetupNetworkRequestMockAsyncThrowOnEmptyFilePathTest
✅ SetupNetworkRequestMockAsyncThrowOnInvalidFilePathTest
✅ SetupNetworkRequestMockAsyncThrowOnNullRequestURLTest

✅ Microsoft.PowerApps.TestEngine.Tests.Users.UserManagerTests

✅ LoginAsUserSuccessTest
✅ LoginUserAsyncThrowsOnInvalidEnviromentVariablesTest(email: "", password: "user1Password")
✅ LoginUserAsyncThrowsOnInvalidEnviromentVariablesTest(email: "someone@example.com", password: "")
✅ LoginUserAsyncThrowsOnInvalidEnviromentVariablesTest(email: "someone@example.com", password: null)
✅ LoginUserAsyncThrowsOnInvalidEnviromentVariablesTest(email: null, password: "user1Password")
✅ LoginUserAsyncThrowsOnInvalidPersonaTest(persona: "")
✅ LoginUserAsyncThrowsOnInvalidPersonaTest(persona: null)
✅ LoginUserAsyncThrowsOnInvalidUserConfigTest(emailKey: "", passwordKey: "myPassword1234")
✅ LoginUserAsyncThrowsOnInvalidUserConfigTest(emailKey: "user1Email", passwordKey: "")
✅ LoginUserAsyncThrowsOnInvalidUserConfigTest(emailKey: "user1Email", passwordKey: null)
✅ LoginUserAsyncThrowsOnInvalidUserConfigTest(emailKey: null, passwordKey: "myPassword1234")
✅ LoginUserAsyncThrowsOnNullTestDefinitionTest
✅ LoginUserAsyncThrowsOnNullUserConfigTest

Annotations

Check failure on line 62 in src/Microsoft.PowerApps.TestEngine/Reporting/TestLogger.cs

See this annotation in the file changed.

@github-actions github-actions / DotNet Tests

Microsoft.PowerApps.TestEngine.Tests.Reporting.TestLoggerTests ► WriteToLogsFileThrowsOnInvalidPathTest

Failed test found in:
  src/TestResults/_fv-az360-89_2023-07-11_20_17_07.trx
Error:
  Assert.Throws() Failure
  Expected: typeof(System.ArgumentException)
  Actual:   typeof(Moq.MockException): IFileSystem.Exists("/home/runner/work/PowerApps-TestEngine/PowerApps-TestEngine/bin/Debug/Microsoft.PowerApps.TestEngine.Tests/logs") invocation failed with mock behavior Strict.
  All invocations on the mock must have a corresponding setup.
  ---- Moq.MockException : IFileSystem.Exists("/home/runner/work/PowerApps-TestEngine/PowerApps-TestEngine/bin/Debug/Microsoft.PowerApps.TestEngine.Tests/logs") invocation failed with mock behavior Strict.
  All invocations on the mock must have a corresponding setup.
Raw output
Assert.Throws() Failure
Expected: typeof(System.ArgumentException)
Actual:   typeof(Moq.MockException): IFileSystem.Exists("/home/runner/work/PowerApps-TestEngine/PowerApps-TestEngine/bin/Debug/Microsoft.PowerApps.TestEngine.Tests/logs") invocation failed with mock behavior Strict.
All invocations on the mock must have a corresponding setup.
---- Moq.MockException : IFileSystem.Exists("/home/runner/work/PowerApps-TestEngine/PowerApps-TestEngine/bin/Debug/Microsoft.PowerApps.TestEngine.Tests/logs") invocation failed with mock behavior Strict.
All invocations on the mock must have a corresponding setup.
   at Moq.FailForStrictMock.Handle(Invocation invocation, Mock mock) in C:\projects\moq4\src\Moq\Interception\InterceptionAspects.cs:line 182
   at Moq.Mock.Moq.IInterceptor.Intercept(Invocation invocation) in C:\projects\moq4\src\Moq\Interception\Mock.cs:line 27
   at Moq.CastleProxyFactory.Interceptor.Intercept(IInvocation underlying) in C:\projects\moq4\src\Moq\Interception\CastleProxyFactory.cs:line 107
   at Castle.DynamicProxy.AbstractInvocation.Proceed()
   at Castle.Proxies.IFileSystemProxy.Exists(String directoryName)
   at Microsoft.PowerApps.TestEngine.Reporting.TestLogger.WriteToLogsFile(String directoryPath, String filter) in /home/runner/work/PowerApps-TestEngine/PowerApps-TestEngine/src/Microsoft.PowerApps.TestEngine/Reporting/TestLogger.cs:line 62
   at Microsoft.PowerApps.TestEngine.Tests.Reporting.TestLoggerTests.<>c__DisplayClass5_0.<WriteToLogsFileThrowsOnInvalidPathTest>b__1() in /home/runner/work/PowerApps-TestEngine/PowerApps-TestEngine/src/Microsoft.PowerApps.TestEngine.Tests/Reporting/TestLoggerTests.cs:line 62
----- Inner Stack Trace -----
   at Moq.FailForStrictMock.Handle(Invocation invocation, Mock mock) in C:\projects\moq4\src\Moq\Interception\InterceptionAspects.cs:line 182
   at Moq.Mock.Moq.IInterceptor.Intercept(Invocation invocation) in C:\projects\moq4\src\Moq\Interception\Mock.cs:line 27
   at Moq.CastleProxyFactory.Interceptor.Intercept(IInvocation underlying) in C:\projects\moq4\src\Moq\Interception\CastleProxyFactory.cs:line 107
   at Castle.DynamicProxy.AbstractInvocation.Proceed()
   at Castle.Proxies.IFileSystemProxy.Exists(String directoryName)
   at Microsoft.PowerApps.TestEngine.Reporting.TestLogger.WriteToLogsFile(String directoryPath, String filter) in /home/runner/work/PowerApps-TestEngine/PowerApps-TestEngine/src/Microsoft.PowerApps.TestEngine/Reporting/TestLogger.cs:line 62
   at Microsoft.PowerApps.TestEngine.Tests.Reporting.TestLoggerTests.<>c__DisplayClass5_0.<WriteToLogsFileThrowsOnInvalidPathTest>b__1() in /home/runner/work/PowerApps-TestEngine/PowerApps-TestEngine/src/Microsoft.PowerApps.TestEngine.Tests/Reporting/TestLoggerTests.cs:line 62

Check failure on line 36 in src/Microsoft.PowerApps.TestEngine.Tests/Helpers/LoggingTestHelper.cs

See this annotation in the file changed.

@github-actions github-actions / DotNet Tests

Microsoft.PowerApps.TestEngine.Tests.TestEngineTests ► TestEngineWithIncorrectOutputDirectoryTest

Failed test found in:
  src/TestResults/_fv-az360-89_2023-07-11_20_17_07.trx
Error:
  Moq.MockException : 
  Expected invocation on the mock once, but was 0 times: x => x.Log<It.IsAnyType>(It.Is<LogLevel>(l => False || (int?)l == 0), It.IsAny<EventId>(), It.Is<It.IsAnyType>((v, t) => Func<object, Type, bool>(v, t)), It.IsAny<Exception>(), It.Is<Func<It.IsAnyType, Exception, string>>((v, t) => True))
  
  Performed invocations:
  
     Mock<ILogger:26> (x):
  
        ILogger.Log<FormattedLogValues>(LogLevel.Debug, 0, Using no additional query parameters., null, Func<FormattedLogValues, Exception, string>)
        ILogger.Log<FormattedLogValues>(LogLevel.Debug, 0, Using domain: apps.powerapps.com, null, Func<FormattedLogValues, Exception, string>)
        ILogger.Log<FormattedLogValues>(LogLevel.Debug, 0, Using output directory: /home/runner/work/PowerApps-TestEngine/PowerApps-TestEngine/bin/Debug/Microsoft.PowerApps.TestEngine.Tests/C:\invalidTestDirectory, null, Func<FormattedLogValues, Exception, string>)
        ILogger.Log<FormattedLogValues>(LogLevel.Information, 0, Test results will be stored in: /home/runner/work/PowerApps-TestEngine/PowerApps-TestEngine/bin/Debug/Microsoft.PowerApps.TestEngine.Tests/C:\invalidTestDirectory/dc5b82, null, Func<FormattedLogValues, Exception, string>)
        ILogger.Log<FormattedLogValues>(LogLevel.Debug, 0, Locale: en-US, null, Func<FormattedLogValues, Exception, string>)
  
Raw output
Moq.MockException : 
Expected invocation on the mock once, but was 0 times: x => x.Log<It.IsAnyType>(It.Is<LogLevel>(l => False || (int?)l == 0), It.IsAny<EventId>(), It.Is<It.IsAnyType>((v, t) => Func<object, Type, bool>(v, t)), It.IsAny<Exception>(), It.Is<Func<It.IsAnyType, Exception, string>>((v, t) => True))

Performed invocations:

   Mock<ILogger:26> (x):

      ILogger.Log<FormattedLogValues>(LogLevel.Debug, 0, Using no additional query parameters., null, Func<FormattedLogValues, Exception, string>)
      ILogger.Log<FormattedLogValues>(LogLevel.Debug, 0, Using domain: apps.powerapps.com, null, Func<FormattedLogValues, Exception, string>)
      ILogger.Log<FormattedLogValues>(LogLevel.Debug, 0, Using output directory: /home/runner/work/PowerApps-TestEngine/PowerApps-TestEngine/bin/Debug/Microsoft.PowerApps.TestEngine.Tests/C:\invalidTestDirectory, null, Func<FormattedLogValues, Exception, string>)
      ILogger.Log<FormattedLogValues>(LogLevel.Information, 0, Test results will be stored in: /home/runner/work/PowerApps-TestEngine/PowerApps-TestEngine/bin/Debug/Microsoft.PowerApps.TestEngine.Tests/C:\invalidTestDirectory/dc5b82, null, Func<FormattedLogValues, Exception, string>)
      ILogger.Log<FormattedLogValues>(LogLevel.Debug, 0, Locale: en-US, null, Func<FormattedLogValues, Exception, string>)

   at Moq.Mock.Verify(Mock mock, LambdaExpression expression, Times times, String failMessage) in C:\projects\moq4\src\Moq\Mock.cs:line 330
   at Moq.Mock`1.Verify(Expression`1 expression, Times times) in C:\projects\moq4\src\Moq\Mock`1.cs:line 727
   at Microsoft.PowerApps.TestEngine.Tests.Helpers.LoggingTestHelper.VerifyLogging(Mock`1 logger, Func`2 messageValidationFunction, Nullable`1 expectedLogLevel, Nullable`1 times) in /home/runner/work/PowerApps-TestEngine/PowerApps-TestEngine/src/Microsoft.PowerApps.TestEngine.Tests/Helpers/LoggingTestHelper.cs:line 36
   at Microsoft.PowerApps.TestEngine.Tests.Helpers.LoggingTestHelper.VerifyLogging(Mock`1 logger, String expectedMessage, Nullable`1 expectedLogLevel, Nullable`1 times) in /home/runner/work/PowerApps-TestEngine/PowerApps-TestEngine/src/Microsoft.PowerApps.TestEngine.Tests/Helpers/LoggingTestHelper.cs:line 27
   at Microsoft.PowerApps.TestEngine.Tests.TestEngineTests.TestEngineWithIncorrectOutputDirectoryTest() in /home/runner/work/PowerApps-TestEngine/PowerApps-TestEngine/src/Microsoft.PowerApps.TestEngine.Tests/TestEngineTests.cs:line 252
--- End of stack trace from previous location ---