Best Testcontainers-dotnet code snippet using DotNet.Testcontainers.Tests.Unit.Containers.Unix.TestcontainersContainerTest.Entrypoint
TestcontainersContainerTest.cs
Source:TestcontainersContainerTest.cs  
...40      {41        // Given42        var testcontainersBuilder = new TestcontainersBuilder<TestcontainersContainer>()43          .WithImage("alpine")44          .WithEntrypoint(KeepTestcontainersUpAndRunning.Command);45        // When46        // Then47        await using (ITestcontainersContainer testcontainer = testcontainersBuilder.Build())48        {49          await testcontainer.StartAsync();50          Assert.NotEmpty(testcontainer.Name);51        }52      }53      [Fact]54      public async Task SpecifiedContainerName()55      {56        // Given57        var name = Guid.NewGuid().ToString("D");58        // When59        var testcontainersBuilder = new TestcontainersBuilder<TestcontainersContainer>()60          .WithImage("alpine")61          .WithEntrypoint(KeepTestcontainersUpAndRunning.Command)62          .WithName(name);63        // Then64        await using (ITestcontainersContainer testcontainer = testcontainersBuilder.Build())65        {66          await testcontainer.StartAsync();67          Assert.EndsWith(name, testcontainer.Name);68        }69      }70      [Fact]71      public async Task Hostname()72      {73        // Given74        const string hostname = "alpine";75        // When76        var testcontainersBuilder = new TestcontainersBuilder<TestcontainersContainer>()77          .WithImage("alpine")78          .WithEntrypoint("/bin/sh", "-c", $"hostname | grep '{hostname}' &> /dev/null")79          .WithHostname(hostname);80        // Then81        await using (ITestcontainersContainer testcontainer = testcontainersBuilder.Build())82        {83          await testcontainer.StartAsync();84          Assert.Equal(0, await testcontainer.GetExitCode());85        }86      }87      [Fact]88      public async Task MacAddress()89      {90        // Given91        const string macAddress = "92:95:5e:30:fe:6d";92        // When93        var testcontainersBuilder = new TestcontainersBuilder<TestcontainersContainer>()94          .WithImage("alpine")95          .WithEntrypoint(KeepTestcontainersUpAndRunning.Command)96          .WithMacAddress(macAddress);97        // Then98        await using (ITestcontainersContainer testcontainer = testcontainersBuilder.Build())99        {100          await testcontainer.StartAsync();101          Assert.Equal(macAddress, testcontainer.MacAddress);102        }103      }104      [Fact]105      public async Task WorkingDirectory()106      {107        // Given108        var testcontainersBuilder = new TestcontainersBuilder<TestcontainersContainer>()109          .WithImage("alpine")110          .WithEntrypoint("/bin/sh", "-c", "test -d /tmp && exit $? || exit $?")111          .WithWorkingDirectory("/tmp");112        // When113        // Then114        await using (ITestcontainersContainer testcontainer = testcontainersBuilder.Build())115        {116          await testcontainer.StartAsync();117          Assert.Equal(0, await testcontainer.GetExitCode());118        }119      }120      [Fact]121      public async Task Entrypoint()122      {123        // Given124        var testcontainersBuilder = new TestcontainersBuilder<TestcontainersContainer>()125          .WithImage("alpine")126          .WithEntrypoint("/bin/sh", "-c", "exit 255");127        // When128        // Then129        await using (ITestcontainersContainer testcontainer = testcontainersBuilder.Build())130        {131          await testcontainer.StartAsync();132          Assert.Equal(255, await testcontainer.GetExitCode());133        }134      }135      [Fact]136      public async Task ExposedPorts()137      {138        // Given139        var testcontainersBuilder = new TestcontainersBuilder<TestcontainersContainer>()140          .WithImage("alpine")141          .WithEntrypoint(KeepTestcontainersUpAndRunning.Command)142          .WithExposedPort(80);143        // When144        // Then145        await using (ITestcontainersContainer testcontainer = testcontainersBuilder.Build())146        {147          var exception = await Record.ExceptionAsync(() => testcontainer.StartAsync());148          Assert.Null(exception);149        }150      }151      [Theory]152      [InlineData(80, 80)]153      [InlineData(443, 80)]154      public async Task PortBindingsHttpAndHttps(int hostPort, int containerPort)155      {156        // Given157        var testcontainersBuilder = new TestcontainersBuilder<TestcontainersContainer>()158          .WithImage("nginx")159          .WithPortBinding(hostPort, containerPort)160          .WithWaitStrategy(Wait.ForUnixContainer()161            .UntilPortIsAvailable(containerPort));162        // When163        // Then164        await using (ITestcontainersContainer testcontainer = testcontainersBuilder.Build())165        {166          await testcontainer.StartAsync();167          using (var httpClient = new HttpClient())168          {169            using (var response = await httpClient.GetAsync($"http://localhost:{hostPort}"))170            {171              Assert.True(HttpStatusCode.OK.Equals(response.StatusCode), $"nginx port {hostPort} is not available.");172            }173          }174        }175      }176      [Fact]177      public async Task RandomHostPortBindings()178      {179        // Given180        var testcontainersBuilder = new TestcontainersBuilder<TestcontainersContainer>()181          .WithImage("nginx")182          .WithEntrypoint(KeepTestcontainersUpAndRunning.Command)183          .WithPortBinding(80, true);184        // When185        // Then186        await using (ITestcontainersContainer testcontainer = testcontainersBuilder.Build())187        {188          await testcontainer.StartAsync();189          Assert.NotEqual(0, testcontainer.GetMappedPublicPort(80));190        }191      }192      [Fact]193      public async Task BindMountAndCommand()194      {195        // Given196        const string target = "tmp";197        const string file = "hostname";198        // When199        var testcontainersBuilder = new TestcontainersBuilder<TestcontainersContainer>()200          .WithImage("nginx")201          .WithEntrypoint("/bin/sh", "-c")202          .WithCommand($"hostname > /{target}/{file} && tail -f /dev/null")203          .WithBindMount(TempPath, $"/{target}")204          .WithWaitStrategy(Wait.ForUnixContainer()205            .UntilFileExists(Path.Combine(TempPath, file)));206        await using (ITestcontainersContainer testcontainer = testcontainersBuilder.Build())207        {208          await testcontainer.StartAsync();209        }210        // Then211        Assert.True(File.Exists(Path.Combine(TempPath, file)), $"{file} does not exist.");212      }213      [Fact]214      public async Task BindMountAndEnvironment()215      {216        // Given217        const string target = "tmp";218        const string file = "dayOfWeek";219        var dayOfWeek = DateTime.UtcNow.DayOfWeek.ToString();220        // When221        var testcontainersBuilder = new TestcontainersBuilder<TestcontainersContainer>()222          .WithImage("nginx")223          .WithNetworkAliases("Foo")224          .WithEntrypoint("/bin/sh", "-c", $"printf $dayOfWeek > /{target}/{file} && tail -f /dev/null")225          .WithEnvironment("dayOfWeek", dayOfWeek)226          .WithBindMount(TempPath, $"/{target}")227          .ConfigureContainer(_ => { }) // https://github.com/testcontainers/testcontainers-dotnet/issues/507.228          .WithWaitStrategy(Wait.ForUnixContainer()229            .UntilFileExists(Path.Combine(TempPath, file)));230        await using (ITestcontainersContainer testcontainer = testcontainersBuilder.Build())231        {232          await testcontainer.StartAsync();233        }234        // Then235        Assert.Equal(dayOfWeek, await File.ReadAllTextAsync(Path.Combine(TempPath, file)));236      }237      [Fact]238      public async Task DockerEndpoint()239      {240        // Given241        var testcontainersBuilder = new TestcontainersBuilder<TestcontainersContainer>()242          .WithDockerEndpoint(TestcontainersSettings.OS.DockerEndpointAuthConfig)243          .WithImage("alpine")244          .WithEntrypoint(KeepTestcontainersUpAndRunning.Command);245        // When246        // Then247        await using (ITestcontainersContainer testcontainer = testcontainersBuilder.Build())248        {249          var exception = await Record.ExceptionAsync(() => testcontainer.StartAsync());250          Assert.Null(exception);251        }252      }253      [Theory]254      [InlineData("localhost", "npipe://./pipe/docker_engine")]255      [InlineData("localhost", "unix:/var/run/docker.sock")]256      [InlineData("docker", "http://docker")]257      [InlineData("docker", "https://docker")]258      [InlineData("docker", "tcp://docker")]259      [InlineData("1.1.1.1", "http://1.1.1.1")]260      [InlineData("1.1.1.1", "https://1.1.1.1")]261      [InlineData("1.1.1.1", "tcp://1.1.1.1")]262      public async Task HostnameShouldMatchDockerGatewayAddress(string expectedHostname, string endpoint)263      {264        // Given265        var testcontainersBuilder = new TestcontainersBuilder<TestcontainersContainer>()266          .WithImage("alpine")267          .WithDockerEndpoint(endpoint);268        // When269        // Then270        await using (var testcontainer = testcontainersBuilder.Build())271        {272          Assert.Equal(expectedHostname, testcontainer.Hostname);273        }274      }275      [Fact]276      public async Task OutputConsumer()277      {278        // Given279        var unixTimeInMilliseconds = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString(CultureInfo.InvariantCulture);280        using (var consumer = Consume.RedirectStdoutAndStderrToStream(new MemoryStream(), new MemoryStream()))281        {282          // When283          var testcontainersBuilder = new TestcontainersBuilder<TestcontainersContainer>()284            .WithImage("alpine")285            .WithEntrypoint("/bin/sh", "-c", $"printf \"{unixTimeInMilliseconds}\" | tee /dev/stderr && tail -f /dev/null")286            .WithOutputConsumer(consumer)287            .WithWaitStrategy(Wait.ForUnixContainer()288              .UntilMessageIsLogged(consumer.Stdout, unixTimeInMilliseconds)289              .UntilMessageIsLogged(consumer.Stderr, unixTimeInMilliseconds));290          await using (ITestcontainersContainer testcontainer = testcontainersBuilder.Build())291          {292            await testcontainer.StartAsync();293          }294          consumer.Stdout.Seek(0, SeekOrigin.Begin);295          consumer.Stderr.Seek(0, SeekOrigin.Begin);296          // Then297          using (var streamReader = new StreamReader(consumer.Stdout, leaveOpen: true))298          {299            Assert.Equal(unixTimeInMilliseconds, await streamReader.ReadToEndAsync());300          }301          using (var streamReader = new StreamReader(consumer.Stderr, leaveOpen: true))302          {303            Assert.Equal(unixTimeInMilliseconds, await streamReader.ReadToEndAsync());304          }305        }306      }307      [Fact]308      public async Task WaitStrategy()309      {310        // Given311        var testcontainersBuilder = new TestcontainersBuilder<TestcontainersContainer>()312          .WithImage("alpine")313          .WithEntrypoint(KeepTestcontainersUpAndRunning.Command)314          .WithWaitStrategy(Wait.ForUnixContainer()315            .AddCustomWaitStrategy(new WaitUntilFiveSecondsPassedFixture()));316        // When317        // Then318        await using (ITestcontainersContainer testcontainer = testcontainersBuilder.Build())319        {320          var exception = await Record.ExceptionAsync(() => testcontainer.StartAsync());321          Assert.Null(exception);322        }323      }324      [Fact]325      public async Task ExecCommandInRunningContainer()326      {327        // Given328        var testcontainersBuilder = new TestcontainersBuilder<TestcontainersContainer>()329          .WithImage("alpine")330          .WithEntrypoint(KeepTestcontainersUpAndRunning.Command);331        // When332        // Then333        await using (ITestcontainersContainer testcontainer = testcontainersBuilder.Build())334        {335          await testcontainer.StartAsync();336          var execResult = await testcontainer.ExecAsync(new[] { "/bin/sh", "-c", "exit 255" });337          Assert.Equal(255, execResult.ExitCode);338        }339      }340      [Fact]341      public async Task ExecCommandInRunningContainerWithStdout()342      {343        // Given344        var testcontainersBuilder = new TestcontainersBuilder<TestcontainersContainer>()345          .WithImage("alpine")346          .WithEntrypoint(KeepTestcontainersUpAndRunning.Command);347        // When348        // Then349        await using (ITestcontainersContainer testcontainer = testcontainersBuilder.Build())350        {351          await testcontainer.StartAsync();352          var execResult = await testcontainer.ExecAsync(new[] { "/bin/sh", "-c", "ping -c 4 google.com" });353          Assert.Contains("PING google.com", execResult.Stdout);354        }355      }356      [Fact]357      public async Task ExecCommandInRunningContainerWithStderr()358      {359        // Given360        var testcontainersBuilder = new TestcontainersBuilder<TestcontainersContainer>()361          .WithImage("alpine")362          .WithEntrypoint(KeepTestcontainersUpAndRunning.Command);363        // When364        // Then365        await using (ITestcontainersContainer testcontainer = testcontainersBuilder.Build())366        {367          await testcontainer.StartAsync();368          var execResult = await testcontainer.ExecAsync(new[] { "/bin/sh", "-c", "cd missing_directory" });369          Assert.Contains("can't cd to missing_directory", execResult.Stderr);370        }371      }372      [Fact]373      public async Task CopyFileToRunningContainer()374      {375        // Given376        const string dayOfWeekFilePath = "/tmp/dayOfWeek";377        var dayOfWeek = DateTime.UtcNow.DayOfWeek.ToString();378        var testcontainersBuilder = new TestcontainersBuilder<TestcontainersContainer>()379          .WithImage("alpine")380          .WithEntrypoint(KeepTestcontainersUpAndRunning.Command);381        // When382        // Then383        await using (ITestcontainersContainer testcontainer = testcontainersBuilder.Build())384        {385          await testcontainer.StartAsync();386          await testcontainer.CopyFileAsync(dayOfWeekFilePath, Encoding.Default.GetBytes(dayOfWeek));387          Assert.Equal(0, (await testcontainer.ExecAsync(new[] { "/bin/sh", "-c", $"test \"$(cat {dayOfWeekFilePath})\" = \"{dayOfWeek}\"" })).ExitCode);388          Assert.Equal(0, (await testcontainer.ExecAsync(new[] { "/bin/sh", "-c", $"stat {dayOfWeekFilePath} | grep 0600" })).ExitCode);389        }390      }391      [Fact]392      public async Task AutoRemoveFalseShouldNotRemoveContainer()393      {394        // Given395        string testcontainerId;396        var testcontainersBuilder = new TestcontainersBuilder<TestcontainersContainer>()397          .WithImage("alpine")398          .WithAutoRemove(false)399          .WithCleanUp(false)400          .WithEntrypoint(KeepTestcontainersUpAndRunning.Command);401        // When402        await using (ITestcontainersContainer testcontainer = testcontainersBuilder.Build())403        {404          await testcontainer.StartAsync();405          testcontainerId = testcontainer.Id;406        }407        // Then408        Assert.True(Docker.Exists(DockerResource.Container, testcontainerId));409      }410      [Fact]411      public async Task AutoRemoveTrueShouldRemoveContainer()412      {413        // Given414        string testcontainerId;415        var testcontainersBuilder = new TestcontainersBuilder<TestcontainersContainer>()416          .WithImage("alpine")417          .WithAutoRemove(true)418          .WithCleanUp(false)419          .WithEntrypoint(KeepTestcontainersUpAndRunning.Command);420        // When421        await using (ITestcontainersContainer testcontainer = testcontainersBuilder.Build())422        {423          await testcontainer.StartAsync();424          testcontainerId = testcontainer.Id;425        }426        // Then427        Assert.False(Docker.Exists(DockerResource.Container, testcontainerId));428      }429      [Fact]430      public async Task ParameterModifiers()431      {432        // Given433        var name = Guid.NewGuid().ToString("D");434        // When435        var testcontainersBuilder = new TestcontainersBuilder<TestcontainersContainer>()436          .WithImage("alpine")437          .WithEntrypoint(KeepTestcontainersUpAndRunning.Command)438          .WithCreateContainerParametersModifier(parameters => parameters.Name = "placeholder")439          .WithCreateContainerParametersModifier(parameters => parameters.Name = name);440        // Then441        await using (ITestcontainersContainer testcontainer = testcontainersBuilder.Build())442        {443          await testcontainer.StartAsync();444          Assert.EndsWith(name, testcontainer.Name);445        }446      }447      [Fact]448      public async Task PullPolicyNever()449      {450        // Given451        // An image that actually exists but was not used/pulled previously...Entrypoint
Using AI Code Generation
1using System;2using System.Threading.Tasks;3using DotNet.Testcontainers.Containers.Builders;4using DotNet.Testcontainers.Containers.Configurations.Databases;5using Xunit;6{7    {8        public async Task Entrypoint()9        {10            var testcontainersBuilder = new TestcontainersBuilder<TestcontainersContainer>()11                .WithDatabase(new PostgreSqlTestcontainerConfiguration("postgres:9.6.12-alpine"))12                .WithEntrypoint("/bin/sh")13                .WithCommand("-c", "echo hello world");14            var testcontainer = testcontainersBuilder.Build();15            await testcontainer.StartAsync();16            var output = await testcontainer.ExecAsync("echo", "hello world");17            Assert.Equal("hello world", output.TrimEnd(Environment.NewLine.ToCharArray()));18            await testcontainer.StopAsync();19        }20    }21}22using System;23using System.Threading.Tasks;24using DotNet.Testcontainers.Containers.Builders;25using DotNet.Testcontainers.Containers.Configurations.Databases;26using Xunit;27{28    {29        public async Task Entrypoint()30        {31            var testcontainersBuilder = new TestcontainersBuilder<TestcontainersContainer>()32                .WithDatabase(new PostgreSqlTestcontainerConfiguration("postgres:9.6.12-alpine"))33                .WithEntrypoint("/bin/sh")34                .WithCommand("-c", "echo hello world");35            var testcontainer = testcontainersBuilder.Build();36            await testcontainer.StartAsync();37            var output = await testcontainer.ExecAsync("echo", "hello world");38            Assert.Equal("hello world", output.TrimEnd(Environment.NewLine.ToCharArray()));39            await testcontainer.StopAsync();40        }41    }42}43using System;44using System.Threading.Tasks;45using DotNet.Testcontainers.Containers.Builders;46using DotNet.Testcontainers.Containers.Configurations.Databases;47using Xunit;48{49    {Entrypoint
Using AI Code Generation
1using System.Threading.Tasks; using DotNet.Testcontainers.Containers; using DotNet.Testcontainers.Containers.Builders; using DotNet.Testcontainers.Containers.Modules; using DotNet.Testcontainers.Containers.WaitStrategies; using DotNet.Testcontainers.Tests.Fixtures; using Xunit;2namespace DotNet.Testcontainers.Tests.Unit.Containers.Unix { public class TestcontainersContainerTest : IClassFixture<UnixContainerFixture> { private readonly UnixContainerFixture unixContainerFixture;3public TestcontainersContainerTest(UnixContainerFixture unixContainerFixture) { this.unixContainerFixture = unixContainerFixture; }4[Fact] public async Task Entrypoint() { using ITestcontainersContainer container = new TestcontainersBuilder<TestcontainersContainer>() .WithImage(this.unixContainerFixture.ContainerFixture.ContainerImage) .WithEntrypoint("/bin/sh", "-c", "while true; do echo 'Hello World!'; sleep 1; done") .WithWaitStrategy(Wait.ForUnixContainer().UntilCommandIsCompleted("echo 'Hello World!'")) .Build(); await container.StartAsync(); } } }5using System.Threading.Tasks; using DotNet.Testcontainers.Containers; using DotNet.Testcontainers.Containers.Builders; using DotNet.Testcontainers.Containers.Modules; using DotNet.Testcontainers.Containers.WaitStrategies; using DotNet.Testcontainers.Tests.Fixtures; using Xunit;6namespace DotNet.Testcontainers.Tests.Unit.Containers.Windows { public class TestcontainersContainerTest : IClassFixture<WindowsContainerFixture> { private readonly WindowsContainerFixture windowsContainerFixture;7public TestcontainersContainerTest(WindowsContainerFixture windowsContainerFixture) { this.windowsContainerFixture = windowsContainerFixture; }8[Fact] public async Task Entrypoint() { using ITestcontainersContainer container = new TestcontainersBuilder<TestcontainersContainer>() .WithImage(this.windowsContainerFixture.ContainerFixture.ContainerImage) .WithEntrypoint("cmd", "/c", "ping", "-t", "Entrypoint
Using AI Code Generation
1using DotNet.Testcontainers.Tests.Unit.Containers.Unix;2using Xunit;3{4    {5        public void Entrypoint()6        {7            var testcontainersContainer = new TestcontainersContainerTest();8            testcontainersContainer.Entrypoint();9        }10    }11}12using DotNet.Testcontainers.Tests.Unit.Containers.Windows;13using Xunit;14{15    {16        public void Entrypoint()17        {18            var testcontainersContainer = new TestcontainersContainerTest();19            testcontainersContainer.Entrypoint();20        }21    }22}23using DotNet.Testcontainers.Tests.Unit.Containers.Unix;24using Xunit;25{26    {27        public void Entrypoint()28        {29            var testcontainersContainer = new TestcontainersContainerTest();30            testcontainersContainer.Entrypoint();31        }32    }33}34using DotNet.Testcontainers.Tests.Unit.Containers.Windows;35using Xunit;36{37    {38        public void Entrypoint()39        {40            var testcontainersContainer = new TestcontainersContainerTest();41            testcontainersContainer.Entrypoint();42        }43    }44}45using DotNet.Testcontainers.Tests.Unit.Containers.Unix;46using Xunit;47{48    {49        public void Entrypoint()50        {51            var testcontainersContainer = new TestcontainersContainerTest();Entrypoint
Using AI Code Generation
1using DotNet.Testcontainers.Tests.Unit.Containers.Unix;2{3    {4        public static void Main(string[] args)5        {6            var testcontainersContainerTest = new TestcontainersContainerTest();7            testcontainersContainerTest.Entrypoint();8        }9    }10}11using DotNet.Testcontainers.Tests.Unit.Containers.Windows;12{13    {14        public static void Main(string[] args)15        {16            var testcontainersContainerTest = new TestcontainersContainerTest();17            testcontainersContainerTest.Entrypoint();18        }19    }20}21Xunit.Sdk.EqualException : Assert.Equal() Failure22at DotNet.Testcontainers.Tests.Unit.Containers.Unix.TestcontainersContainerTest.Entrypoint() in /home/runner/work/testcontainers-dotnet/testcontainers-dotnet/src/DotNet.Testcontainers.Tests/Unit/Containers/Unix/TestcontainersContainerTest.cs:line 15423at Test.Entrypoint.Main(String[] args) in /home/runner/work/testcontainers-dotnet/testcontainers-dotnet/2.cs:line 1324.NET SDK (reflecting any global.json):25Host (useful for support):Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
