nuxt / cli

⚡️ Nuxt Generation CLI Experience.
https://github.com/nuxt/cli/discussions/3
MIT License
258 stars 62 forks source link

Proposal: init test setup with Nuxi #374

Open rinux55 opened 6 months ago

rinux55 commented 6 months ago

One thing I'm really missing from nuxi is a way to quickly initialise a test setup.

My proposal is that after people have initialised a project with nuxi init, they can run a command like nuxi add tests or nuxi tests init which will start a small wizard to set up everything related to testing.

Running this command will:

I'd be down to contribute with a PR, but first I'm interested in some feedback! What do you think of this?

pi0 commented 6 months ago

Hi. I think it is a nice idea. I think we can move it forward in two directions:

1) A new app-test template in nuxt/starter that can initialize /test directory. Using nuxi init -t test --install can achieve (almost) the same result 2) Later integrate it with upcoming scaffolding tooling to allow defining the above steps without the need of a template (old tracker: https://github.com/nuxt/cli/issues/57)

rinux55 commented 6 months ago
  • A new app-test template in nuxt/starter that can initialize /test directory. Using nuxi init -t test --install can achieve (almost) the same result

I am not super familiar with the starter templates, but will this allow for a wizard like approach like asking for playwright etc, or can this only create a project from a template without any options?

I'm assuming this allows to only create a starter template with tests, and not a combination of module and tests? I feel that this is too limiting, as in the ideal world it should be easy to add tests anywhere in a nuxt project. For instance, I'm creating Layers often, it would be really nice to have one command take care of it all.

My vision is that testing Nuxt applications (and with that, setting up testing) should be just as easy and fun as it is to work with the other aspects of Nuxt. That is why your second suggestion:

sounds like the ideal solution. If there is any way I can help making this a reality, let's have a chat.

pi0 commented 6 months ago

I am not super familiar with the starter templates, but will this allow for a wizard-like approach like asking for a playwright, etc, or can this only create a project from a template without any options?

We need to make multiple starters (check branches). It is a current limitation that will be solvable with (2) indeed.

I will keep you/this issue posted on any progress but i think adding a starter template for app testing even if limited might be a good start wdyt?

rinux55 commented 6 months ago

I will keep you/this issue posted on any progress but i think adding a starter template for app testing even if limited might be a good start wdyt?

thanks for keeping us posted!

I'm a bit on the fence if I think the starter template is a good start, my reasonings being:

For my personal situation, I rarely need e2e tests. This would mean I'd have to manually remove e2e tests, or, there should be the following branches:

Personally, I prefer @testing-library, but of course this feature is not for me alone - another person might prefer @vue/test-utils, so then we'd have to branch out more. Or, we keep things very simple, but that would mean having to go back in the code and remove or change packages - which at that point is as much work as just initialising the tests yourself.

If i'd have to go back in the code and change things every time I would just be annoyed by the feature and probably not use it at all. But having this feature does mean having all these branches, and keeping them up to date, and having the docs to make people aware this exists.

With that, I really think it's better to wait when we can build something which works really well!