Re: How to re-use setups in multiple tests?
From: Tom Clarke <hidden>
Date: 2016-06-15 22:43:37
In this case the first test rebases the branch created in setup (it's
testing the rebase merge strategy), the second test should do the same
thing, except check there is a warning if a --message option is
passed.
I suppose I could find the old pre-rebase head and work with that, but
that doesn't seem that clean to me.
Here's the code (non-working):
#!/bin/sh
test_description='merge-rebase backend test'
. ./test-lib.sh
test_expect_success setup '
echo hello >a &&
git add a &&
test_tick && git commit -m initial &&
git checkout -b branch &&
echo hello >b &&
git add b &&
test_tick && git commit -m onbranch &&
git checkout master &&
echo update >a &&
git add a &&
test_tick && git commit -m update
'
test_expect_success 'merging using rebase does not create merge
commit' '
git checkout branch &&
git merge -s rebase master &&
( git log --pretty=oneline ) >actual &&
(
echo "4db7a5a013e67aa623d1fd294e8d46e89b3ace8f
onbranch"
echo "893371811dbd13e85c098b72d1ab42bcfd24c2db update"
echo "0e960b10429bf3f1e168ee2cc7d531ac7c622580
initial"
) >expected &&
git diff -w -u expected actual
'
test_expect_success 'merging using rebase with message gives warning'
'
#doesn't work because the branch has already been rebased and
is therefore up to date
git checkout branch &&
git merge -m "a message" -s rebase master 2>&1 expected &&
(
echo "warning: Message is not used for rebase merge
strategy"
) >expected &&
git diff -w -u expected actual
'
test_done
-Tom
On 10/1/07, Johannes Schindelin [off-list ref] wrote:Hi, On Mon, 1 Oct 2007, Tom Clarke wrote:quoted
I'm wondering if there's a pattern for re-using setups across several tests, similar to how a setUp function is used in xUnit. The problem is I need the setup to actually be re-run, for each test to start from a clean slate, so using the following doesn't work as the setup is just run before the first test.We typically do the clean up phase explicitely. Or avoid it. Example: you want to do something to a branch, but the next step should use the original state of the branch. Solution: "git checkout -b new-branch HEAD~5" Sorry, unless you are a little less mysterious about the exact use case you have in mind, I cannot help more. Ciao, Dscho