You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -1659,6 +1660,56 @@ The [[https://www.gnu.org/software/emacs/manual/html_node/elisp/Simple-Packages.
1659
1660
:TOC: 1
1660
1661
:END:
1661
1662
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.
***** [[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
2525
2576
:TOC: 0
2526
2577
:END:
2527
2578
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:
2556
2580
2557
-
*** Tools :tools:
2558
-
:PROPERTIES:
2559
-
:TOC: 0
2560
-
:END:
2581
+
Frameworks for writing, organizing, and running tests.
@@ -2570,12 +2591,6 @@ Buttercup is a behavior-driven development framework for testing Emacs Lisp code
2570
2591
The framework is heavily inspired by Jasmine.
2571
2592
#+END_QUOTE
2572
2593
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
-
2579
2594
**** [[https://github.com/ecukes/ecukes][ecukes: Cucumber for Emacs]]
2580
2595
:PROPERTIES:
2581
2596
:ID: f0cdf4dd-38ff-41a1-a4c1-8f7677940863
@@ -2594,34 +2609,43 @@ Cucumber is a great integration testing tool, used mostly for testing web applic
2594
2609
2595
2610
This is the standard, built-in Emacs testing library, used by core code and third-party packages alike.
2596
2611
2597
-
**** [[https://github.com/vermiculus/emake.el][emake.el: Test Elisp without the hoops]]
2612
+
*** Libraries :libraries:
2613
+
:PROPERTIES:
2614
+
:TOC: 0
2615
+
:END:
2598
2616
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.
2601
2618
2602
-
Things EMake does:
2619
+
***** [[https://github.com/phillord/assess][assess: Test support functions]]
2603
2620
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.
2608
2623
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:
2612
2625
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.
2614
2631
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.
2617
2633
#+END_QUOTE
2618
2634
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]]
2620
2636
2621
2637
#+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.
2623
2641
#+END_QUOTE
2624
2642
2643
+
*** Tools :tools:
2644
+
:PROPERTIES:
2645
+
:TOC: 0
2646
+
:END:
2647
+
2648
+
+ See [[*Building / Testing][Building / Testing tools]].
2625
2649
** User interface :UI:
2626
2650
2627
2651
*** Libraries :libraries:
@@ -3143,6 +3167,7 @@ These resources should be added to the appropriate sections above. Since it tak
3143
3167
Especially =easy-mmode-defmap=.
3144
3168
3145
3169
** TODO [[https://github.com/rocky/elisp-decompile][GitHub - rocky/elisp-decompile: Emacs Lisp Decompiler]]
3170
+
3146
3171
** TODO [[https://github.com/ellerh/peg.el][GitHub - ellerh/peg.el]]
0 commit comments