Git Product home page Git Product logo

Comments (5)

dodie avatar dodie commented on May 24, 2024 2

Hi @abathur

Sorry for the late reply.

I don't mean to suggest that you need to census all of the frameworks for these--they probably will be available just about everywhere--but a little context about the baseline might help someone.

Yes, you are right about this one. By "Zero Dependency and implemented in Bash" I mean two things:

  • apart from a few common tools (e.g. as you mentioned, coreutils and grep), you don't need anything else.
  • the source code of the testing framework is Bash (e.g. it's not a single executable binary produced by a C++ project), so a Bash-savvy person can read the source code easily

The first one could be more precise I agree, but I don't really have an idea how to list all the dependencies needed by the tools. This is why I settled on the idea that "Zero dependency" == it only depends on stuff you probably already have. Besides, I think all the frameworks listed are depending on a few tools, so in this sense none of them has "zero dependencies".

I'll add a note about this to the comparison table.

What was your goal when you were searching for a pure bash test framework, that does not depend on coreutils? Did you find one?

At first I interpreted this as meaning the framework itself is pure bash. But, it also depends on coreutils, sed, and grep--so I am guessing that maybe the statement means that the tests are pure bash?

Yes, this is what I intended to mean by this. I'll clarify the wording.

Cheers,
David

from testing-in-bash.

dodie avatar dodie commented on May 24, 2024 1

I've updated the main comparison table to include a note about what "Zero Dependency and implemented in Bash" means, and I also corrected the wording about "pure bash" in example-shunit2/readme.md.

from testing-in-bash.

abathur avatar abathur commented on May 24, 2024 1

What was your goal when you were searching for a pure bash test framework, that does not depend on coreutils?

I've been working on a CLI tool (resholve) that resolves "bare" references to external commands and rewrites them to absolute paths. (acutely, this meets a need for the Nix package manager to be able to find and explicitly specify external dependencies)

I test it with bats (and am pretty happy with it), but I have a chicken/egg problem: I can technically use resholve to package bats for Nix, but it would create a cyclic dependency between the two Nix packages.

Addressing it is fairly far down my priority list, but I was curious if there was an established pure-bash replacement.

Did you find one?

I didn't (or haven't? :)

from testing-in-bash.

dodie avatar dodie commented on May 24, 2024 1

I see, thanks for the input! (Cool tool btw! 👍)

With this I'll close this issue because I see no obvious way forward on how to make the dependency listing more precise.
Hopefully the updated wording resolves the ambiguities.

from testing-in-bash.

abathur avatar abathur commented on May 24, 2024

There's also a ~related comment in example-shunit2/readme.md:

If you are after a "pure Bash" testing framework, make sure to also check bash_unit.

At first I interpreted this as meaning the framework itself is pure bash. But, it also depends on coreutils, sed, and grep--so I am guessing that maybe the statement means that the tests are pure bash?

from testing-in-bash.

Related Issues (6)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.