Самый простой способ сделать это должно добавить .config
файл в разделе развертывания по Вашему модульному тесту.
Для этого открываются .testrunconfig
файл от Ваших Объектов Решения. В разделе Deployment добавьте вывод .config
файлы от каталога сборки Вашего проекта (по-видимому bin\Debug
).
Что-либо перечисленное в разделе развертывания будет скопировано в рабочую папку тестового проекта, прежде чем тесты будут запущены, таким образом, Ваш зависимый от конфигурации код будет хорошо работать.
Редактирование: Я забыл добавлять, это не будет работать во всех ситуациях, таким образом, Вы, возможно, должны будете включать сценарий запуска, который переименовывает вывод .config
для соответствия имени модульного теста.
Во-первых, каждый субъект, ожидающий получения
, занимает поток. Если он никогда ничего не получит, этот поток никогда ничего не сделает. Актер на response
не занимает ни одного потока, пока что-то не получит. Как только он что-то получает, ему выделяется поток, и он инициализируется в нем.
Теперь важна часть инициализации. Ожидается, что получающий поток что-то вернет, а отвечающий - нет. Таким образом, предыдущее состояние стека в конце последней реакции
может быть и полностью отброшено. Отсутствие необходимости ни в сохранении, ни в восстановлении состояния стека ускоряет запуск потока.
Есть различные причины производительности, почему вам может понадобиться то или иное. Как вы знаете, слишком много потоков в Java - не лучшая идея. С другой стороны, поскольку вам нужно присоединить актера к потоку, прежде чем он сможет отреагировать
, получит
сообщение быстрее, чем отреагирует
на него. Поэтому, если у вас есть акторы, которые получают много сообщений, но очень мало с ними делают, дополнительная задержка response
может сделать его слишком медленным для ваших целей.
--all
Сделайте вид, будто все ссылки в
$ GIT_DIR / refs /
перечислены в командной строке как.
Он добавляет:
ваш текущий пакет будет связывать только родителей коммита, вам, вероятно, потребуется указать
- all
, чтобы получить полный набор из всего (ветвей, которые являются потомками главного
Чтобы увидеть разницу:
$ git bundle create /tmp/foo master
$ git bundle create /tmp/foo-all --all
$ git bundle list-heads /tmp/foo
$ git bundle list-heads /tmp/foo-all
но, насколько я могу судить, это не позволяет легко обновить (мне пришлось бы удалить и воссоздать мою локальную резервную копию).
Не уверен, что вы имеете в виду под что его обновление должно быть таким же простым, как
git fetch
git clone
, поскольку предполагается, что он будет извлекать все ссылки / коммиты, которые видны в удаленной ветке.
git clone --mirror
также не сильно отличается от git clone --bare
[источник]
единственное существенное отличие - сокращенное удаленное добавление git --mirror
(см. git help add
, чтобы узнать о другом поведении)
Если вы действительно беспокоитесь, вы можете сделать это:
git clone --no-hardlinks --mirror $original $dest
Что будет делать что-то другое, только если они были включены в любом случае та же файловая система.
И если вы действительно параноик, вы можете использовать tar.
То, что вы спрашиваете, довольно сложно сделать в рамках ограничений git. Проблема в том, что ни клонирование, ни выборка по умолчанию не предоставят вам все ветки. См. Этот вопрос:
В качестве примера клонирования репо с несколькими ветвями приведена расшифровка:
% git clone -o tufts linux.cs.tufts.edu:/r/ghc/git/experimental.git
Initialized empty Git repository in /usr/local/nr/git/ghc/experimental/.git/
% cd experimental/
% git fetch
% git branch -a
* head
tufts/HEAD
tufts/experimental
tufts/head
tufts/norman
% git branch --track experimental tufts/experimental
Branch experimental set up to track remote branch refs/remotes/tufts/experimental.
% git branch --track norman tufts/norman
...
Вы можете видеть, что клонирование каждой ветки происходит программно быть немного сложнее.
Если github предоставляет доступ к rsync или Unison , это лучшие инструменты для работы. Иначе придется писать страшные скрипты ...