Hi,
I'm trying to create a pipeline on Azure for test/coverage using JustMock, my application is Core 5.0*
After a long journey to make the build work, now I'm encountering an issue with the test (JustMockVSTestV2)
steps:
- task: vs-publisher-443.jm-vstest-2.JustMockVSTest-2.JustMockVSTest@2
displayName: 'VsTest - testAssemblies'
inputs:
testAssemblyVer2: |
**\bin\**\*test*.dll
!**\*TestAdapter.dll
!**\*TestPlatform*
!**\obj\**
!**\bin\**\ref\**
pathTo64BitJustMockProfiler: '[correctpath]\bin\Release\net5.0\runtimes\win-x64\native\Telerik.CodeWeaver.Profiler.dll'
pathTo32BitJustMockProfiler: '[correctpath]\bin\Release\net5.0\runtimes\win-x86\native\Telerik.CodeWeaver.Profiler.dll'
vsTestVersion: toolsInstaller
runTestsInIsolation: true
codeCoverageEnabled: true
otherConsoleOptions: '/Framework:.NETCoreApp,Version=v5.0.401 /Enablecodecoverage /logger:trx'
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
My Test functions requires elevation:
Mock.SetupStatic(typeof(AStaticClass));
var response = Mock.Create<IRestResponse<string>>(); //this is restsharp
Mock.Arrange(() => response.Data)
.Returns("SomeData");
var client = Mock.Create<RestClient>(Constructor.Mocked);
Mock.Arrange(() => client.ExecuteAsync<string>(Arg.IsAny<IRestRequest>(), Arg.IsAny<CancellationToken>()))
.IgnoreInstance()
.TaskResult(response);
My test project works fine on my local machine when I enable JustMock profile, however I get a bunch of errors on Azure pipeline:
##[error][xUnit.net 00:00:03.76] ProjectTests.GetAsync_StateUnderTest_ExpectedBehavior [FAIL]
[xUnit.net 00:00:03.76] System.InvalidProgramException : Common Language Runtime detected an invalid program.
[xUnit.net 00:00:03.76] Stack Trace:
[xUnit.net 00:00:03.79] at ProjectTests.GetAsync_StateUnderTest_ExpectedBehavior()
[xUnit.net 00:00:03.79] at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
[xUnit.net 00:00:03.79] at ProjectTests.GetAsync_StateUnderTest_ExpectedBehavior()
ALSO
##[error]Testhost process exited with error: Cannot use file stream for [PATH\bin\Release\net5.0\testhost.deps.json]: No such file or directory
##[error]A fatal error was encountered. The library 'hostpolicy.dll' required to execute the application was not found in 'C:\hostedtoolcache\windows\dotnet'.
##[error]Failed to run as a self-contained app.
##[error] - The application was run as a self-contained app because 'PATH\bin\Release\net5.0\testhost.runtimeconfig.json' was not found.
##[error] - If this should be a framework-dependent app, add the 'PATH\bin\Release\net5.0\testhost.runtimeconfig.json' file and specify the appropriate framework.
##[error]. Please check the diagnostic logs for more information.
Please advice, I'm not able to make JustMock to work with Azure Pipeline.
Thanks
Hi Team
We tried executing justMock test cases in command prompt using justMock Console (licensed), dotCover and xUnit, but justMock Test execution failed and gave the error "System.InvalidProgramException : Common Language Runtime detected an invalid program."
The command we use to execute is as follows:
start /wait "" "{PATH}\JustMock\Libraries\Telerik.JustMock.Configuration.exe" /link "dotCover"
"{PATH}\JustMock\Libraries\Telerik.JustMock.Console.exe" runadvanced --profiler-path-64 "{PATH}\JustMock\Libraries\CodeWeaver\64\Telerik.CodeWeaver.Profiler.dll" --command "{PATH}\JetBrains.dotCover.CommandLineTools.2021.1.3\dotCover.exe" --command-args "cover --reporttype=html --output=CodeCoverage\\index.html --targetexecutable=\"{PATH}\xunit.runner.console.2.4.1\tools\net472\xunit.console.exe\" -- \"{PATH}\{PATH_OF_JUSTMOCK_TEST_DLL}\""
start /wait "" "{PATH}\JustMock\Libraries\Telerik.JustMock.Configuration.exe" /unlink "dotCover"
Attaching the log and test code.
Hi
I have a function:
Public Function UpdatePasswordHistory(ByVal mods As DataSource, ByVal StaffCode As String, ByVal Password As String) As Integer
Dim strSQl As New StringBuilder("Insert into [dbo].[PasswordHistory]([StaffCode],[Password],[DateSet])")
strSQl.Append($"values('{StaffCode}','{EncryptPassword(UCase(Password))}','{System.DateTime.Today.ToString("yyyy-MM-dd")}')")
Return mods.SqlDB.ExecuteNonQuery(strSQl.ToString())
End Function
I want to create 2 tests.
The staffcode is a foreign key so must exists.
If no issues it should return 1. else 0.
My 2 tests always return 0.
I probably done this all wrong
public void UpdatePasswordHistory_Staffcodeexists()