ManimCommunity / ManimCommunity/manim

Reorganize tests

Open
#2,591 0 comments 1 reaction 0 assignees View on GitHub
enhancement testing
Dominant language
Python
Stars
40.9k
Forks
3.1k
Avg merge
3d 12h
Merged PRs (30d)
25

Description

## Enhancement proposal
The `tests` folder is currently, in my opinion, fairly disorganized. This can make it more difficult to add new tests, as well as to identify which tests we currently have and what tests need to be added. I propose reorganizing the tests in roughly the following way:

```
tests/
├─ module/
├─ interface/
├─ miscellaneous/
```

The `module` folder should mirror the structure of the main `manim` directory. Tests should be grouped by module rather than being split up into graphical and non-graphical unit tests. For example, graphical and non-graphical unit tests for `VMobject` should be placed within the same file. Cairo and OpenGL tests for a given Mobject or Animation should also be placed in the same file (except for the base classes). Not quite sure about how the structure of control data should work.

The `interface` module should include tests that check Manim works with the various methods of providing input and getting output. For example, CLI tests, tests that assert output files were created by Manim, and in the future tests that check the Jupyter interface works correctly should all be included here.

The `miscellaneous` folder should include tests that don't fit in the other two categories. Not sure if there are any such tests right now.

## Additional comments

Contributor guide

Open the contributing guide

Research direction

Start by inventorying the existing tests/ folder and comparing it with the main manim directory structure. Review how graphical, non-graphical, Cairo, OpenGL, CLI, and output-file tests are currently organized. Done would require an agreed structure separating module, interface, and miscellaneous tests, including a clear decision for control data tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
testing-qa
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.