You can just change the process' group leader back to the 'user' process (or any other process depending on your app) from within the test, and then set it back to what it was before using erlang:group_leader/0 and erlang:group_leader/2. <br>

<br><div class="gmail_quote">On Mon, Jul 25, 2011 at 8:19 AM, Paweł Peregud <span dir="ltr"><<a href="mailto:paulperegud@gmail.com">paulperegud@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

I wonder how did you solve the issue with eunit hiding output from PropEr?<br><br>I do following on test setup:<br><br>    meck:new(io, [unstick, passthrough]),<br>    meck:expect(io, fwrite, fun<br>                                (FString, Args) -> meck:passthrough([user, FString, Args])<br>


                            end)<br><br>This approach is ugly and also very slow. Does anyone have a better solution?<br><br>Best, <br><font color="#888888">PP.</font><div><div class="h5"><br><br><br><br><div class="gmail_quote">

2011/6/24 Roman Shestakov <span dir="ltr"><<a href="mailto:romanshestakov@yahoo.co.uk" target="_blank">romanshestakov@yahoo.co.uk</a>></span><br>
<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex"><div><div style="font-family:times new roman,new york,times,serif;font-size:12pt"><div>thanks a lot Bob, this is very helpful<br>


Regards, Roman<br></div><div style="font-family:times new roman,new york,times,serif;font-size:12pt"><div><br></div><div style="font-family:arial,helvetica,sans-serif;font-size:13px"><div><font face="Tahoma" size="2"><hr size="1">


<b><span style="font-weight:bold">From:</span></b> Bob Ippolito <<a href="mailto:bob@redivi.com" target="_blank">bob@redivi.com</a>><br><b><span style="font-weight:bold">To:</span></b> Frédéric Trottier-Hébert <<a href="mailto:fred.hebert@erlang-solutions.com" target="_blank">fred.hebert@erlang-solutions.com</a>><br>


<b><span style="font-weight:bold">Cc:</span></b> Roman Shestakov <<a href="mailto:romanshestakov@yahoo.co.uk" target="_blank">romanshestakov@yahoo.co.uk</a>>; <a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>


<b><span style="font-weight:bold">Sent:</span></b> Fri, 24 June, 2011 18:05:37<br><b><span style="font-weight:bold">Subject:</span></b> Re: [erlang-questions] how to run PropEr tests from
 Eunit?<br></font></div><div><div><br>This is what I've been using:<br><br>proper_test_() -><br>    [{atom_to_list(F),<br>      fun () -> ?assert(proper:quickcheck(?MODULE:F(), [long_result])) end}<br>
     || {F, 0} <- ?MODULE:module_info(exports), F > 'prop_', F < 'prop`'].<br><br>2011/6/23 Frédéric Trottier-Hébert <<a href="mailto:fred.hebert@erlang-solutions.com" target="_blank">fred.hebert@erlang-solutions.com</a>>:<br>


> The simplest way I know to do them individually is with separate tests:<br>> proper_test_() -><br>>     [?_assert(proper:quickcheck(prop_some_property())),<br>>      ?_assert(proper:quickcheck(prop_some_property())),<br>


>      ...].<br>> You can then create macros to do it for you of the form<br>> -define(PROPTEST(A), ?_assert(proper:quickcheck(A()))).<br>> and then call<br>>
 proper_test_() -><br>>     [?PROPTEST(prop_something), ?PROPTEST(prop_something_else),<br>>      ?PROPTEST(prop_other), ?PROPTEST(prop_last)].<br>> or whatever you feel like.<br>> If you want to run them all, make sure your module's properties all start<br>


> with the prefix 'prop_'. Then you can do something like<br>> proper_test() -><br>>     [] = proper:module(?MODULE).<br>> which will find all the properties of the current module and run them for<br>


> you. Also, don't forget to always include the proper include file first,<br>> because both PropEr and EUnit define a LET macro, but the PropEr one is the<br>> only one I've seen actively used.<br>><br>


> --<br>> Fred Hébert<br>> <a href="http://www.erlang-solutions.com" target="_blank">http://www.erlang-solutions.com</a><br>><br>><br>> On 2011-06-23, at 18:12 PM, Roman Shestakov
 wrote:<br>><br>> hello,<br>><br>> I am trying to run PropEr tests from Eunit and I must admit, I can't figure<br>> out how to run them<br>><br>><br>> lets say I want to test the following three functions<br>


><br>> %%--------------------------------------------------------------------<br>> %% @doc<br>> %% convert Date to atom<br>> %% @end<br>> %%--------------------------------------------------------------------<br>


> -spec date_to_atom(date()) -> atom().<br>> date_to_atom({Year, Month, Day}) -><br>>    list_to_atom(date_to_string({Year, Month, Day})).<br>><br>> %%--------------------------------------------------------------------<br>


> %% @doc<br>> %% Convert Date to string<br>> %% @end<br>> %%--------------------------------------------------------------------<br>> -spec date_to_string(date()) -> string().<br>> date_to_string({Year, Month, Day}) -><br>


>
    lists:flatten(io_lib:format("~4.10.0B~2.10.0B~2.10.0B", [Year, Month,<br>> Day])).<br>><br>><br>> %%--------------------------------------------------------------------<br>> %% @doc<br>> %% convert Date represented as atom into Erlang date format<br>


> %% @end<br>> %%--------------------------------------------------------------------<br>> -spec atom_to_date(atom()) -> date().<br>> atom_to_date(Date) -><br>>    Year = list_to_integer(lists:sublist(atom_to_list(Date),1,4)),<br>


>    Month = list_to_integer(lists:sublist(atom_to_list(Date),5,2)),<br>>    Day = list_to_integer(lists:sublist(atom_to_list(Date),7,2)),<br>>    {Year, Month, Day}.<br>><br>><br>><br>> with the following property:<br>


><br>> proper_time_to_atom() -><br>>    ?FORALL(Date, date(),<br>>         begin<br>>
         EncDate = ec_time_fns:atom_to_date(ec_time_fns:date_to_atom(Date)),<br>>         EncDate =:= Date<br>>         end).<br>><br>> running the following from erl works fine<br>> proper:quickcheck(ec_time_fns_tests:proper_time_to_atom()).<br>


><br>><br>> but how do I make eunit to run these test?<br>><br>><br>> tried this , but it doesn't seem to work<br>><br>> time_to_atom_test_() -><br>>    ?_test(proper:quickcheck(proper_time_to_atom())).<br>


><br>><br>> any ideas?<br>><br>> Regards, Roman<br>><br>> _______________________________________________<br>> erlang-questions mailing list<br>> <a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>


> <a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>><br>><br>> _______________________________________________<br>> erlang-questions mailing list<br>


> <a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>> <a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>


><br>><br></div></div></div></div>



</div></div><br>_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br></blockquote></div><br>
</div></div><br>_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br></blockquote></div><br>