Skip to content

Commit 6e68a9a

Browse files
committed
Reorganize: Build/test tools and test frameworks, etc.
1 parent a540227 commit 6e68a9a

File tree

2 files changed

+210
-151
lines changed

2 files changed

+210
-151
lines changed

README.org

Lines changed: 79 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1221,6 +1221,7 @@ A flexible, featureful =curl= wrapper, last updated in 2015.
12211221
- [[#reference][Reference]]
12221222
- [[#package-headers-and-structure][Package headers and structure]]
12231223
- [[#tools][Tools]]
1224+
- [[#building--testing][Building / Testing]]
12241225
- [[#package-installationmanagement][Package installation/management]]
12251226

12261227
*** Best practices :best_practices:
@@ -1659,6 +1660,56 @@ The [[https://www.gnu.org/software/emacs/manual/html_node/elisp/Simple-Packages.
16591660
:TOC: 1
16601661
:END:
16611662

1663+
**** Building / Testing :building:testing:
1664+
1665+
Tools for building and testing packages, especially from scripts or Makefiles.
1666+
1667+
***** [[https://github.com/cask/cask][cask: Project management tool for Emacs]]
1668+
:PROPERTIES:
1669+
:ID: 06ba57cf-464f-473a-9911-4311033bc358
1670+
:END:
1671+
1672+
#+BEGIN_QUOTE
1673+
Cask is a project management tool for Emacs that helps automate the package development cycle; development, dependencies, testing, building, packaging and more.
1674+
#+END_QUOTE
1675+
1676+
***** [[https://github.com/vermiculus/emake.el][emake.el: Test Elisp without the hoops]]
1677+
:PROPERTIES:
1678+
:ID: 2e076cf2-77b5-440c-9832-086739185f6b
1679+
:END:
1680+
1681+
#+BEGIN_QUOTE
1682+
Test Elisp with services like Travis CI without the fuss of Cask – just you, your project, and (Emacs-)Make.
1683+
1684+
Things EMake does:
1685+
1686+
+ parses, installs, and runs tests for your package
1687+
+ provides all the power of Elisp to extend its capabilities on-demand
1688+
1689+
Things EMake will never do (or ‘reasons you may still need Cask’):
1690+
1691+
+ manage your development environment or provide tools to do so
1692+
+ provide ’bundler-like’ exec abilities (this includes Cask’s emacs and eval commands)
1693+
#+END_QUOTE
1694+
1695+
***** [[https://gitlab.petton.fr/DamienCassou/makel/][makel: A makefile to facilitate checking Emacs packages]]
1696+
:PROPERTIES:
1697+
:ID: 5bcfdd7f-40a3-40b4-bd0a-586602791161
1698+
:END:
1699+
1700+
#+BEGIN_QUOTE
1701+
makel is a project consisting of a Makefile (=makel.mk=) that Emacs package authors can use to facilitate quality checking (linting and tests). The Makefile can be used both locally on the developer machine and remotely on a continuous integration machine.
1702+
#+END_QUOTE
1703+
1704+
***** [[https://github.com/alphapapa/makem.sh][makem.sh: Makefile-like script for building and testing packages]]
1705+
:PROPERTIES:
1706+
:ID: 38e6ee67-0d22-44d2-a2c6-01602e00ee23
1707+
:END:
1708+
1709+
#+BEGIN_QUOTE
1710+
=makem.sh= is a script to help build and test Emacs Lisp packages (not Emacs itself). It aims to make linting and testing as simple as possible. Source files and test files are discovered automatically from the project’s Git repo. Output is simple: by default, there is no output unless errors occur. With increasing verbosity levels (with =-v= or =-vv= options), more detail gives positive feedback. Output is colored by default to make reading easy.
1711+
#+END_QUOTE
1712+
16621713
**** Package installation/management :installation:management:
16631714

16641715
***** [[https://github.com/Malabarba/paradox][paradox: modernizing Emacs' Package Menu. With package ratings, usage statistics, customizability, and more.]]
@@ -2525,39 +2576,9 @@ Since this happens at macro expansion time rather than at runtime, there is no p
25252576
:TOC: 0
25262577
:END:
25272578

2528-
*** Libraries :libraries:
2529-
:PROPERTIES:
2530-
:TOC: 0
2531-
:END:
2532-
2533-
**** [[https://github.com/phillord/assess][assess: Test support functions]]
2534-
2535-
#+BEGIN_QUOTE
2536-
Assess provides additional support for testing Emacs packages.
2537-
2538-
It provides:
2539-
2540-
- a set of predicates for comparing strings, buffers and file contents.
2541-
- explainer functions for all predicates giving useful output
2542-
- macros for creating many temporary buffers at once, and for restoring the buffer list.
2543-
- methods for testing indentation, by comparision or "roundtripping".
2544-
- methods for testing fontification.
2545-
2546-
Assess aims to be a stateless as possible, leaving Emacs unchanged whether the tests succeed or fail, with respect to buffers, open files and so on; this helps to keep tests independent from each other.
2547-
#+END_QUOTE
2548-
2549-
**** [[https://github.com/DarwinAwardWinner/with-simulated-input][with-simulated-input: Test interactive functions non-interactively]]
2550-
2551-
#+BEGIN_QUOTE
2552-
This package provides an Emacs Lisp macro, ~with-simulated-input~, which evaluates one or more forms while simulating a sequence of input events for those forms to read. The result is the same as if you had evaluated the forms and then manually typed in the same input. This macro is useful for non-interactive testing of normally interactive commands and functions, such as ~completing-read~.
2553-
2554-
Some interactive functions rely on idle timers to do their work, so you might need a way to simulate idleness. For that, there is the ~wsi-simulate-idle-time~ function. You can insert calls to this function in between input strings.
2555-
#+END_QUOTE
2579+
*** Frameworks :frameworks:
25562580

2557-
*** Tools :tools:
2558-
:PROPERTIES:
2559-
:TOC: 0
2560-
:END:
2581+
Frameworks for writing, organizing, and running tests.
25612582

25622583
**** [[https://github.com/jorgenschaefer/emacs-buttercup][buttercup: Behavior-Driven Emacs Lisp Testing]]
25632584
:PROPERTIES:
@@ -2570,12 +2591,6 @@ Buttercup is a behavior-driven development framework for testing Emacs Lisp code
25702591
The framework is heavily inspired by Jasmine.
25712592
#+END_QUOTE
25722593

2573-
**** [[https://github.com/cask/cask][cask: Project management tool for Emacs]]
2574-
2575-
#+BEGIN_QUOTE
2576-
Cask is a project management tool for Emacs that helps automate the package development cycle; development, dependencies, testing, building, packaging and more.
2577-
#+END_QUOTE
2578-
25792594
**** [[https://github.com/ecukes/ecukes][ecukes: Cucumber for Emacs]]
25802595
:PROPERTIES:
25812596
:ID: f0cdf4dd-38ff-41a1-a4c1-8f7677940863
@@ -2594,34 +2609,43 @@ Cucumber is a great integration testing tool, used mostly for testing web applic
25942609

25952610
This is the standard, built-in Emacs testing library, used by core code and third-party packages alike.
25962611

2597-
**** [[https://github.com/vermiculus/emake.el][emake.el: Test Elisp without the hoops]]
2612+
*** Libraries :libraries:
2613+
:PROPERTIES:
2614+
:TOC: 0
2615+
:END:
25982616

2599-
#+BEGIN_QUOTE
2600-
Test Elisp with services like Travis CI without the fuss of Cask – just you, your project, and (Emacs-)Make.
2617+
Libraries that help with writing tests.
26012618

2602-
Things EMake does:
2619+
***** [[https://github.com/phillord/assess][assess: Test support functions]]
26032620

2604-
+ parses, installs, and runs tests for your package
2605-
+ provides all the power of Elisp to extend its capabilities on-demand
2606-
2607-
Things EMake will never do (or ‘reasons you may still need Cask’):
2621+
#+BEGIN_QUOTE
2622+
Assess provides additional support for testing Emacs packages.
26082623

2609-
+ manage your development environment or provide tools to do so
2610-
+ provide ’bundler-like’ exec abilities (this includes Cask’s emacs and eval commands)
2611-
#+END_QUOTE
2624+
It provides:
26122625

2613-
**** [[https://gitlab.petton.fr/DamienCassou/makel/][makel: A makefile to facilitate checking Emacs packages]]
2626+
- a set of predicates for comparing strings, buffers and file contents.
2627+
- explainer functions for all predicates giving useful output
2628+
- macros for creating many temporary buffers at once, and for restoring the buffer list.
2629+
- methods for testing indentation, by comparision or "roundtripping".
2630+
- methods for testing fontification.
26142631

2615-
#+BEGIN_QUOTE
2616-
makel is a project consisting of a Makefile (=makel.mk=) that Emacs package authors can use to facilitate quality checking (linting and tests). The Makefile can be used both locally on the developer machine and remotely on a continuous integration machine.
2632+
Assess aims to be a stateless as possible, leaving Emacs unchanged whether the tests succeed or fail, with respect to buffers, open files and so on; this helps to keep tests independent from each other.
26172633
#+END_QUOTE
26182634

2619-
**** [[https://github.com/alphapapa/makem.sh][makem.sh: Makefile-like script for building and testing packages]]
2635+
***** [[https://github.com/DarwinAwardWinner/with-simulated-input][with-simulated-input: Test interactive functions non-interactively]]
26202636

26212637
#+BEGIN_QUOTE
2622-
=makem.sh= is a script to help build and test Emacs Lisp packages (not Emacs itself). It aims to make linting and testing as simple as possible. Source files and test files are discovered automatically from the project’s Git repo. Output is simple: by default, there is no output unless errors occur. With increasing verbosity levels (with =-v= or =-vv= options), more detail gives positive feedback. Output is colored by default to make reading easy.
2638+
This package provides an Emacs Lisp macro, ~with-simulated-input~, which evaluates one or more forms while simulating a sequence of input events for those forms to read. The result is the same as if you had evaluated the forms and then manually typed in the same input. This macro is useful for non-interactive testing of normally interactive commands and functions, such as ~completing-read~.
2639+
2640+
Some interactive functions rely on idle timers to do their work, so you might need a way to simulate idleness. For that, there is the ~wsi-simulate-idle-time~ function. You can insert calls to this function in between input strings.
26232641
#+END_QUOTE
26242642

2643+
*** Tools :tools:
2644+
:PROPERTIES:
2645+
:TOC: 0
2646+
:END:
2647+
2648+
+ See [[*Building / Testing][Building / Testing tools]].
26252649
** User interface :UI:
26262650

26272651
*** Libraries :libraries:
@@ -3143,6 +3167,7 @@ These resources should be added to the appropriate sections above. Since it tak
31433167
Especially =easy-mmode-defmap=.
31443168

31453169
** TODO [[https://github.com/rocky/elisp-decompile][GitHub - rocky/elisp-decompile: Emacs Lisp Decompiler]]
3170+
31463171
** TODO [[https://github.com/ellerh/peg.el][GitHub - ellerh/peg.el]]
31473172

31483173
** TODO Articles to add [0/13]

0 commit comments

Comments
 (0)