<html><head><base href="x-msg://2/"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">The simplest way I know to do them individually is with separate tests:<div><br></div><div>proper_test_() -></div><div>    [?_assert(proper:quickcheck(prop_some_property())),</div><div>     ?_assert(proper:quickcheck(prop_some_property())),</div><div>     ...].</div><div><br></div><div>You can then create macros to do it for you of the form</div><div><br></div><div>-define(PROPTEST(A), ?_assert(proper:quickcheck(A()))).</div><div><br></div><div>and then call</div><div><br></div><div><div>proper_test_() -></div><div>    [?PROPTEST(prop_something), ?PROPTEST(prop_something_else),</div><div>     ?PROPTEST(prop_other), ?PROPTEST(prop_last)].</div></div><div><br></div><div>or whatever you feel like.</div><div><br></div><div>If you want to run them all, make sure your module's properties all start with the prefix 'prop_'. Then you can do something like</div><div><br></div><div>proper_test() -></div><div>    [] = proper:module(?MODULE).</div><div><br></div><div>which will find all the properties of the current module and run them for you. Also, don't forget to always include the proper include file first, because both PropEr and EUnit define a LET macro, but the PropEr one is the only one I've seen actively used.<br><div>
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><br class="Apple-interchange-newline">--</div><div>Fred Hébert</div><div><div><a href="http://www.erlang-solutions.com">http://www.erlang-solutions.com</a></div></div><div><br></div></div></span></span></div></div><br class="Apple-interchange-newline">
</div>
<br><div><div>On 2011-06-23, at 18:12 PM, Roman Shestakov wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; "><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">hello,<br><br>I am trying to run PropEr tests from Eunit and I must admit, I can't figure 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, 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>             <span class="Apple-converted-space"> </span><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></div></div>_______________________________________________<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">http://erlang.org/mailman/listinfo/erlang-questions</a><br></div></span></blockquote></div><br></div></body></html>