Pester
command-line-api
Pester | command-line-api | |
---|---|---|
24 | 22 | |
3,015 | 3,306 | |
0.3% | 0.7% | |
7.3 | 7.6 | |
7 days ago | 6 days ago | |
PowerShell | C# | |
GNU General Public License v3.0 or later | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Pester
-
PyPyInstaller Powershell Module Initial Code Push
Pester is what's used for most Powershell testing. While it has some pretty amazing features, it does have issues with .NET class method mocking and sometimes scope can be weird. Here's a simple example:
-
Dev Stuff Distracting Me From Article Writing
This is the fun that is Powershell mocking, or at least the form that someone completely new to Powershell would write. One thing I must say is that Pester's mocking capabilities are quite easy to work with. It reminded me of pytest mock patching, only well, simpler. Most of the time spent fighting tests was due to the nuances of pipeline flow. For example, you can see that your mocked method was called X many times through something like this:
-
Windows 11 malware adds excludes to windows defender scan
The folder blocked all users from reading the files so if you open up the files it looks empty, even tho you have show hidden files turned on. You can't delete it since it says that you need access from TrustedInstaller. This is cleaver by the hacker since trusted installer is actually the name of a windows feature. HOW-EVER by using the command line I found out that the folder contains framework like these two. https://github.com/d1pakda5/PowerShell-for-Pentesters https://github.com/pester/Pester
-
I have to learn PowerShell in 2 weeks. is that possible?
I'm really surprised that nobody in this thread has mentioned Pester. PowerShell has its own automated unit testing framework that is incredibly versatile. You do need to know PowerShell in order to really make it shine, but if there are some simple tests that your class requires such as "make sure this value conforms to this regex value", Pester is pretty easy to pick up and utilize.
-
Sys admin interview coming up, help your loyal helpdesk pupil to not let his dreams be dreams
Once you start building code/scripts that are used consistently, consider adding Pester testing to your work. Most sysadmin managers may not get it, but if you're talking to dev managers, they'll absolutely get the importance of unit testing and why it's a good tool to have. Again, down the road. Learn the basics first.
-
Thoughts on authoring cmdlets
Finally, the Pester testing framework, which ships with Powershell, is a great way to ensure your code actually does what it's meant to do.
- Git repo best practices for Powershell.
- Looking for public powershell projects to learn best practices and as a reference
- Testing Solutions
-
Test your PowerShell code with Pester
Pester GH page
command-line-api
-
DotMake Command-Line VS command-line-api - a user suggested alternative
2 projects | 13 Dec 2023
System.CommandLine is a very good parser but you need a lot of boilerplate code to get going and the API is hard to discover.
-
How to configure true dependency injection in System.CommandLine
using System.CommandLine.Invocation; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; namespace System.CommandLine.Builder; internal static class DependencyInjectionMiddleware { public static CommandLineBuilder UseDependencyInjection(this CommandLineBuilder builder, Action configureServices) { return UseDependencyInjection(builder, (_, services) => configureServices(services)); } // This overload allows you to conditionally register services based on the command line invocation context // in order to improve startup time when you have a lot of services to register. public static CommandLineBuilder UseDependencyInjection(this CommandLineBuilder builder, Action configureServices) { return builder.AddMiddleware(async (context, next) => { // Register our services in the modern Microsoft dependency injection container var services = new ServiceCollection(); configureServices(context, services); var uniqueServiceTypes = new HashSet(services.Select(x => x.ServiceType)); services.TryAddSingleton(context.Console); await using var serviceProvider = services.BuildServiceProvider(); // System.CommandLine's service provider is a "fake" implementation that relies on a dictionary of factories, // but we can still make sure here that "true" dependency-injected services are available from "context.BindingContext". // https://github.com/dotnet/command-line-api/blob/2.0.0-beta4.22272.1/src/System.CommandLine/Invocation/ServiceProvider.cs context.BindingContext.AddService(_ => serviceProvider); foreach (var serviceType in uniqueServiceTypes) { context.BindingContext.AddService(serviceType, _ => serviceProvider.GetRequiredService(serviceType)); // Enable support for "context.BindingContext.GetServices<>()" as in the modern dependency injection var enumerableServiceType = typeof(IEnumerable<>).MakeGenericType(serviceType); context.BindingContext.AddService(enumerableServiceType, _ => serviceProvider.GetServices(serviceType)); } await next(context); }); } }
-
C# .NET Tools with System.CommandLine
command-line-api
-
Pro .NET Console Apps
I wouldn't go so far as to call it a dead duck. The project is being actively worked on. https://github.com/dotnet/command-line-api
-
Show HN: Replbuilder, quickly build a Python REPL CLI prompt
This looks really nice.
I've been spending a lot of time with python lately because of new project work, I had never really used python before. It's been really cool to keep finding stuff like this.
The equivalent of something like in the .net world (eg https://github.com/dotnet/command-line-api) and even powershell modules (https://learn.microsoft.com/en-us/powershell/module/microsof...) have a steeper learning curve and take significantly MORE work to set up for the end-user.
-
What is the best architecture for a Console app?
https://github.com/dotnet/command-line-api is a library that facilitates making commandline executables with nice arguments and options. It's a little complicated but if you're going to pack in a lot of functionality, you need something like this.
-
Thoughts on authoring cmdlets
if you're looking into command line utilities built in c#, you might want to check out System.CommandLine. You'll be able to build your comands in c#.
-
Fellow C# coders, I was randomly making a RANDOM script just for fun, when all of a sudden, an error popped up! For some reason, my program just can't detect a method called "Main" when it's right there! (Program does not contain a static "Main" method suitable for an entry point) Thank you!
What you're trying to do can be accomplished with something like System.CommandLine.DragonFruit. This basically lets you define a strongly typed Main method overload, and it handles converting the string[] for you
- Architecture pattern for Console Apps?
-
What's your favorite command line arg parser?
System.Commandline is my current favorite.
What are some alternatives?
bicep - Bicep is a declarative language for describing and deploying Azure resources
spectre.console - A .NET library that makes it easier to create beautiful console applications.
PSScriptAnalyzer - Download ScriptAnalyzer from PowerShellGallery
Cocona - Micro-framework for .NET console application. Cocona makes it easy and fast to build console applications on .NET.
arm-ttk - Azure Resource Manager Template Toolkit
ILRepack - Open-source alternative to ILMerge
Plaster - Plaster is a template-based file and project generator written in PowerShell.
Command Line Parser - The best C# command line parser that brings standardized *nix getopt style, for .NET. Includes F# support
Invoke-Build - Build Automation in PowerShell
ILMerge - ILMerge is a static linker for .NET Assemblies.
PowerShellPracticeAndStyle - The Unofficial PowerShell Best Practices and Style Guide
CommandLineUtils - Command line parsing and utilities for .NET