Ken,

I usually have a shell buffer nearby and go there to inspect the failed
tests when I get no output.
The problem is that shell blocks do not capture stderr. John Kitchin wrote
a blog post
<http://kitchingroup.cheme.cmu.edu/blog/2015/01/04/Redirecting-stderr-in-org-mode-shell-blocks/>
about this problem and provided a solution that may work for you, but I
have not tried it yet.

Martin

On Fri, Jul 26, 2019 at 7:02 AM Ken Mankoff <mank...@gmail.com> wrote:

> Hi Martin,
>
> On 2019-06-26 at 18:09 -04, Martin Alsinet <mar...@alsinet.com.ar>
> wrote...
> > I use a different approach, where I tangle the source into files in
> > modules and then I import those modules from other blocks. This allows
> > me to organize my document with different sections for the code and
> > its tests, which then get exported into their corresponding files.
>
> Thanks for providing this pytest code below. It runs nicely because your
> tests pass. It does not run if a test fails. The shell block that runs
> pytest reports
>
> Babel evaluation exited with code 1
> Code block produced no output.
>
> Do you have some way of capturing failed pytest tests in Org Babel?
>
> Thanks,
>
>   -k.
>
> > * Square Function
> >
> > This function receives a number and returns its square
> >
> > #+BEGIN_SRC python :tangle ./utils/math.py :mkdirp yes
> > def square(x):
> >     return x * x
> > #+END_SRC
> >
> > ** __init__.py (module setup)
> >
> > #+begin_src python :tangle ./utils/__init__.py :mkdirp yes
> > from utils.math import square
> >
> > #+end_src
> >
> > ** Test cases
> >
> > 1. The square of five should be 25
> > 2. The square of zero should be 0
> > 3. The square of a negative number should be positive
> >
> > #+BEGIN_SRC python :tangle ./utils/test_square.py :mkdirp yes
> > from utils.math import square
> >
> > def test_square_of_five():
> >     assert square(5) == 25
> >
> > def test_square_of_zero():
> >     assert square(0) == 0
> >
> > def test_square_of_negative():
> >     assert square(-5) > 0
> > #+END_SRC
> >
> > *** Run tests
> >
> > #+begin_src sh :results output raw
> > pytest ./utils
> > #+end_src
> >
> > #+RESULTS:
> > ============================= test session starts
> > ==============================
> > platform linux -- Python 3.7.3, pytest-4.6.3, py-1.8.0, pluggy-0.12.0
> > rootdir: /app
> > collected 3 items
> >
> > utils/test_square.py ...
> > [100%]
> >
> > =========================== 3 passed in 0.08 seconds
> > ===========================
> >
> >
>

Reply via email to